CINXE.COM
Sync Client | ObjectBox Sync
<!DOCTYPE html><html lang="en" class="scroll-pt-[76px] theme-clean no-tint sidebar-default sidebar-list-default"><head><meta charSet="utf-8"/><link rel="preconnect" href="https://api.gitbook.com"/><link rel="preconnect" href="https://static.gitbook.com"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=1&quality=100&sign=f43fdb2d&sv=2 32w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=2&quality=100&sign=f43fdb2d&sv=2 64w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=3&quality=100&sign=f43fdb2d&sv=2 96w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=4&quality=100&sign=f43fdb2d&sv=2 128w" imageSizes="32px" fetchPriority="high"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/9f5478b23a2dbc0b.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/c689b5a6a1432db7.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/619939f8b811f942.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/95b358fb5c9305a3.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/09a5087aafb66ce5.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/faa0908d2237c5e3.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/9008e36b498d813c.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/2567c890e467e55b.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/79eda1c72751119a.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi" href="https://static.gitbook.com/_next/static/chunks/webpack-ff813e9d416ce230.js"/><script src="https://static.gitbook.com/_next/static/chunks/1dd3208c-d78985df41c8a89e.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/4850-4b0a9d49477fe59a.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/main-app-ae4dd64edc524be6.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/app/global-error-185b8d6d9c549d21.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/9322-5f5740cd5fd0bdf9.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/layout-1a4e0bf6da1d58a4.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/2622-d4284e72be418b70.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/7609-5073804535dff38c.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/983-4fad0180b495256f.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/error-65349dd045e81a2f.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/2999-584f9b8ecc233405.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/7993-8ef7f7477490b7af.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/5890-3ab2501336ce1348.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/3625-453944d6ea4368cb.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/4055-7666845ca98fb1a4.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/5572-d068cc2bc8e73d12.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/8843-f0d01ada04c351a9.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/4168-597f57f1cfad2671.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js" async="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script><link rel="privacy-policy" href="https://objectbox.io/wordpress/wp-content/uploads/2022/08/Object-Box-Privacy-Notice.pdf"/><meta name="color-scheme" content="light"/><title>Sync Client | ObjectBox Sync</title><meta name="description" content="How to create an ObjectBox Sync client and connect to an ObjectBox Sync server."/><meta name="generator" content="GitBook (d222c11)"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://sync.objectbox.io/sync-client"/><meta property="og:title" content="Sync Client | ObjectBox Sync"/><meta property="og:description" content="How to create an ObjectBox Sync client and connect to an ObjectBox Sync server."/><meta property="og:image" content="https://sync.objectbox.io/~gitbook/ogimage/-MG8Tvq6Td68Nf1gAbmP"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Sync Client | ObjectBox Sync"/><meta name="twitter:description" content="How to create an ObjectBox Sync client and connect to an ObjectBox Sync server."/><meta name="twitter:image" content="https://sync.objectbox.io/~gitbook/ogimage/-MG8Tvq6Td68Nf1gAbmP"/><link rel="icon" href="https://2882845212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MG8Rp3u8P9P7cUT3_pP%2Ficon%2FB3y4dFQB6c8O3h5fzSAs%2FProfile-picture-linkedIn.jpg?alt=media&token=6c4f9693-6da0-484b-b330-5357c112bf6b" type="image/png" media="(prefers-color-scheme: light)"/><link rel="icon" href="https://2882845212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MG8Rp3u8P9P7cUT3_pP%2Ficon%2FB3y4dFQB6c8O3h5fzSAs%2FProfile-picture-linkedIn.jpg?alt=media&token=6c4f9693-6da0-484b-b330-5357c112bf6b" type="image/png" media="(prefers-color-scheme: dark)"/><meta name="next-size-adjust"/><style> :root { --primary-1: 251 255 255; --contrast-primary-1: 29 29 29; --primary-2: 242 251 255; --contrast-primary-2: 29 29 29; --primary-3: 236 248 255; --contrast-primary-3: 29 29 29; --primary-4: 227 244 255; --contrast-primary-4: 29 29 29; --primary-5: 218 239 255; --contrast-primary-5: 29 29 29; --primary-6: 207 231 255; --contrast-primary-6: 29 29 29; --primary-7: 190 219 255; --contrast-primary-7: 29 29 29; --primary-8: 174 206 255; --contrast-primary-8: 29 29 29; --primary-9: 56 132 255; --contrast-primary-9: 255 255 255; --primary-10: 38 114 236; --contrast-primary-10: 255 255 255; --primary-11: 23 102 222; --contrast-primary-11: 255 255 255; --primary-12: 0 0 119; --contrast-primary-12: 255 255 255; --primary-original: 56 132 255; --contrast-primary-original: 255 255 255; --tint-1: 254 255 255; --contrast-tint-1: 29 29 29; --tint-2: 248 250 253; --contrast-tint-2: 29 29 29; --tint-3: 245 248 252; --contrast-tint-3: 29 29 29; --tint-4: 239 242 248; --contrast-tint-4: 29 29 29; --tint-5: 233 237 244; --contrast-tint-5: 29 29 29; --tint-6: 225 230 238; --contrast-tint-6: 29 29 29; --tint-7: 212 217 226; --contrast-tint-7: 29 29 29; --tint-8: 199 205 215; --contrast-tint-8: 29 29 29; --tint-9: 119 134 157; --contrast-tint-9: 255 255 255; --tint-10: 108 122 145; --contrast-tint-10: 255 255 255; --tint-11: 97 111 134; --contrast-tint-11: 255 255 255; --tint-12: 18 29 48; --contrast-tint-12: 255 255 255; --tint-original: 120 120 120; --contrast-tint-original: 255 255 255; --neutral-1: 255 255 255; --contrast-neutral-1: 29 29 29; --neutral-2: 250 250 250; --contrast-neutral-2: 29 29 29; --neutral-3: 247 247 247; --contrast-neutral-3: 29 29 29; --neutral-4: 242 242 242; --contrast-neutral-4: 29 29 29; --neutral-5: 237 237 237; --contrast-neutral-5: 29 29 29; --neutral-6: 229 229 229; --contrast-neutral-6: 29 29 29; --neutral-7: 217 217 217; --contrast-neutral-7: 29 29 29; --neutral-8: 204 204 204; --contrast-neutral-8: 29 29 29; --neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255; --neutral-10: 121 121 121; --contrast-neutral-10: 255 255 255; --neutral-11: 110 110 110; --contrast-neutral-11: 255 255 255; --neutral-12: 29 29 29; --contrast-neutral-12: 255 255 255; --neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255; --header-background: 56 132 255; --header-link: 255 255 255; } .dark { --primary-1: 26 29 34; --contrast-primary-1: 255 255 255; --primary-2: 29 35 44; --contrast-primary-2: 255 255 255; --primary-3: 35 44 59; --contrast-primary-3: 255 255 255; --primary-4: 36 48 68; --contrast-primary-4: 255 255 255; --primary-5: 38 54 79; --contrast-primary-5: 255 255 255; --primary-6: 39 58 88; --contrast-primary-6: 255 255 255; --primary-7: 45 68 104; --contrast-primary-7: 255 255 255; --primary-8: 51 78 121; --contrast-primary-8: 255 255 255; --primary-9: 56 132 255; --contrast-primary-9: 255 255 255; --primary-10: 63 139 255; --contrast-primary-10: 255 255 255; --primary-11: 111 189 255; --contrast-primary-11: 29 29 29; --primary-12: 172 255 255; --contrast-primary-12: 29 29 29; --primary-original: 56 132 255; --contrast-primary-original: 255 255 255; --tint-1: 29 29 29; --contrast-tint-1: 255 255 255; --tint-2: 34 35 35; --contrast-tint-2: 255 255 255; --tint-3: 43 44 45; --contrast-tint-3: 255 255 255; --tint-4: 46 48 50; --contrast-tint-4: 255 255 255; --tint-5: 52 54 56; --contrast-tint-5: 255 255 255; --tint-6: 56 58 61; --contrast-tint-6: 255 255 255; --tint-7: 65 68 71; --contrast-tint-7: 255 255 255; --tint-8: 75 78 82; --contrast-tint-8: 255 255 255; --tint-9: 126 133 145; --contrast-tint-9: 255 255 255; --tint-10: 137 145 157; --contrast-tint-10: 255 255 255; --tint-11: 185 193 205; --contrast-tint-11: 29 29 29; --tint-12: 247 255 255; --contrast-tint-12: 29 29 29; --tint-original: 120 120 120; --contrast-tint-original: 255 255 255; --neutral-1: 29 29 29; --contrast-neutral-1: 255 255 255; --neutral-2: 34 34 34; --contrast-neutral-2: 255 255 255; --neutral-3: 44 44 44; --contrast-neutral-3: 255 255 255; --neutral-4: 48 48 48; --contrast-neutral-4: 255 255 255; --neutral-5: 53 53 53; --contrast-neutral-5: 255 255 255; --neutral-6: 57 57 57; --contrast-neutral-6: 255 255 255; --neutral-7: 67 67 67; --contrast-neutral-7: 255 255 255; --neutral-8: 78 78 78; --contrast-neutral-8: 255 255 255; --neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255; --neutral-10: 144 144 144; --contrast-neutral-10: 255 255 255; --neutral-11: 192 192 192; --contrast-neutral-11: 29 29 29; --neutral-12: 255 255 255; --contrast-neutral-12: 29 29 29; --neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255; --header-background: 56 132 255; --header-link: 255 255 255; } </style><script src="https://static.gitbook.com/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule="" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi"></script></head><body class="__className_2f5617 __className_7d852e __variable_96046e bg-tint-base theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint"><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">!function(){var d=document.documentElement,c=d.classList;c.remove('light','dark');d.style.colorScheme = 'light';c.add('light')}()</script><header id="site-header" class="flex flex-col h-[64px] sticky top-0 z-10 w-full flex-none shadow-[0px_1px_0px] shadow-tint-12/2 bg-tint-base/9 theme-muted:bg-tint-subtle/9 theme-bold-tint:bg-tint-subtle/9 theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint contrast-more:bg-tint-base text-sm backdrop-blur-lg"><div class="theme-bold:bg-header-background theme-bold:shadow-[0px_1px_0px] theme-bold:shadow-tint-12/2"><div class="scroll-nojump"><div class="gap-4 lg:gap-8 flex items-center justify-between w-full py-3 min-h-16 sm:h-16 px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full"><div class="flex max-w-full shrink min-w-0 gap-2 lg:gap-4 justify-start items-center"><button class="flex flex-row items-center py-1 px-2 rounded straight-corners:rounded-sm page-no-toc:hidden lg:hidden -ml-2 text-tint-strong theme-bold:text-header-link hover:bg-tint-hover theme-bold:hover:bg-header-link/3" aria-label="Open table of contents"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/bars.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-4 text-inherit"></svg></button><a class="group/headerlogo min-w-0 shrink flex items-center" href="/"><img alt="" style="aspect-ratio:1" fetchPriority="high" class="block dark:hidden object-contain size-8" src="https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=4&quality=100&sign=f43fdb2d&sv=2" srcSet="https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=1&quality=100&sign=f43fdb2d&sv=2 32w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=2&quality=100&sign=f43fdb2d&sv=2 64w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=3&quality=100&sign=f43fdb2d&sv=2 96w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=4&quality=100&sign=f43fdb2d&sv=2 128w" sizes="32px" width="300" height="300"/><img alt="" style="aspect-ratio:1" loading="lazy" fetchPriority="high" class="hidden dark:block object-contain size-8" src="https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=4&quality=100&sign=f43fdb2d&sv=2" srcSet="https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=1&quality=100&sign=f43fdb2d&sv=2 32w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=2&quality=100&sign=f43fdb2d&sv=2 64w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=3&quality=100&sign=f43fdb2d&sv=2 96w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b&width=32&dpr=4&quality=100&sign=f43fdb2d&sv=2 128w" sizes="32px" width="300" height="300"/><div class="text-pretty line-clamp-3 tracking-tight max-w-[18ch] lg:max-w-[24ch] font-semibold ms-3 text-base/tight lg:text-lg/tight text-tint-strong theme-bold:text-header-link">ObjectBox Sync</div></a></div><div class="headerLinks_containerHeaderlinks__GUgiv grow shrink flex justify-end items-center gap-x-4 lg:gap-x-6 min-w-9 z-20 lg:[&>.button+.button]:-ml-2"><a class="flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link" href="https://objectbox.io/sync"><span class="truncate min-w-0">Sync Home</span></a><a class="flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link" href="https://objectbox.io/blog/"><span class="truncate min-w-0">Blog</span></a><a class="flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link" href="https://twitter.com/ObjectBox_io"><span class="truncate min-w-0">Twitter</span></a><a class="flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link" href="https://github.com/objectbox"><span class="truncate min-w-0">GitHub</span></a><div class="headerLinks_linkEllipsis__Z01IN items-center z-20"><div class="group/dropdown relative flex shrink min-w-0"><button type="button" class="text-tint hover:text-primary dark:hover:text-primary theme-bold:text-header-link theme-bold:hover:text-header-link/8 flex gap-1 items-center"><span class="sr-only">More</span><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/ellipsis.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-4"></svg><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-down.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon shrink-0 opacity-6 size-3 ms-1 transition-all group-hover/dropdown:opacity-11 group-focus-within/dropdown:rotate-180"></svg></button><div tabindex="-1" role="menu" aria-orientation="vertical" aria-labelledby=":S1:" class="w-52 max-h-80 flex absolute top-full left-0 z-20 origin-top-left invisible transition-opacity duration-1000 group-hover/dropdown:visible group-focus-within/dropdown:visible -translate-x-48 md:translate-x-0"><div class="mt-2 w-full bg-tint-base rounded-lg straight-corners:rounded-sm p-2 shadow-1xs overflow-auto ring-1 ring-tint-subtle focus:outline-none"><div class="flex flex-col gap-1"><a class="px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover" href="https://objectbox.io/sync">Sync Home</a><a class="px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover" href="https://objectbox.io/blog/">Blog</a><a class="px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover" href="https://twitter.com/ObjectBox_io">Twitter</a><a class="px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover" href="https://github.com/objectbox">GitHub</a></div></div></div></div></div></div><div class="flex md:min-w-56 grow-0 shrink-0 justify-self-end"><!--$--><button type="button" aria-label="Search" class="flex flex-1 flex-row justify-center items-center w-full px-3 py-2 gap-2 bg-tint-base ring-1 ring-tint-12/2 shadow-sm shadow-tint-12/3 dark:shadow-none text-tint rounded-lg straight-corners:rounded-sm contrast-more:ring-tint-12 contrast-more:text-tint-strong transition-all hover:bg-tint-subtle hover:shadow-md hover:scale-102 hover:ring-tint-hover hover:text-tint-strong focus:shadow-md focus:scale-102 focus:ring-tint-hover focus:text-tint-strong contrast-more:hover:ring-2 contrast-more:hover:ring-tint-12 contrast-more:focus:ring-2 contrast-more:focus:ring-tint-12 active:shadow-sm active:scale-98 md:justify-start md:w-full theme-bold:bg-header-link/2 theme-bold:hover:bg-header-link/3 theme-bold:text-header-link/8 theme-bold:hover:text-header-link theme-bold:ring-header-link/4 theme-bold:hover:ring-header-link/5 theme-bold:[&_svg]:text-header-link/10 theme-bold:[&_.shortcut]:text-header-link/8 theme-bold:contrast-more:bg-header-background theme-bold:contrast-more:text-header-link theme-bold:contrast-more:ring-header-link theme-bold:contrast-more:hover:bg-header-background theme-bold:contrast-more:hover:ring-header-link theme-bold:contrast-more:focus:text-header-link theme-bold:contrast-more:focus:bg-header-background theme-bold:contrast-more:focus:ring-header-link theme-bold:shadow-none theme-bold:hover:shadow-none"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/magnifying-glass.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon text-tint-subtle shrink-0 size-4"></svg><div class="w-full hidden md:block text-left"><span class="flex-1">Search<!-- -->...</span></div><div class="shortcut hidden md:inline justify-end text-xs text-tint contrast-more:text-tint-strong whitespace-nowrap [font-feature-settings:"calt",_"case"]">Ctrl +<!-- --> K</div></button><!--/$--></div></div></div></div></header><div class="flex flex-col lg:flex-row px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full"><aside data-testid="table-of-contents" class="group page-no-toc:hidden grow-0 shrink-0 basis-full lg:basis-72 relative z-[1] lg:sticky lg:top-0 lg:h-screen site-header:lg:top-16 site-header:lg:h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:h-[calc(100vh_-_6.75rem)] pt-6 pb-4 sidebar-filled:lg:pr-6 hidden navigation-open:flex lg:flex flex-col gap-4 navigation-open:border-b border-tint-subtle"><div class="lg:-ms-5 overflow-hidden relative flex flex-col flex-grow sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base sidebar-filled:rounded-xl straight-corners:rounded-none"><div class="px-5 *:my-4"></div><div data-testid="toc-scroll-container" class="flex flex-grow flex-col p-2 lg:pb-20 overflow-y-auto lg:gutter-stable [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-transparent group-hover:[&::-webkit-scrollbar]:bg-tint-subtle group-hover:[&::-webkit-scrollbar-thumb]:bg-tint-7 group-hover:[&::-webkit-scrollbar-thumb:hover]:bg-tint-8"><ul class="flex flex-col gap-y-0.5 sidebar-list-line:border-l border-tint-subtle"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/">Data Synchronization</a></li><li class="flex flex-col"><a aria-current="page" class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm text-balance hover:contrast-more:ring-1 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none font-semibold sidebar-list-line:before:w-0.5 before:bg-primary-solid text-primary-subtle sidebar-list-pill:bg-primary [html.sidebar-list-pill.theme-muted_&]:bg-primary-hover [html.sidebar-list-pill.theme-bold.tint_&]:bg-primary-hover [html.sidebar-filled.sidebar-list-pill.theme-muted_&]:bg-primary [html.sidebar-filled.sidebar-list-pill.theme-bold.tint_&]:bg-primary hover:bg-primary-hover hover:text-primary hover:before:bg-primary-solid-hover sidebar-list-pill:hover:bg-primary-hover contrast-more:text-primary contrast-more:hover:text-primary-strong contrast-more:bg-primary contrast-more:ring-1 contrast-more:ring-primary contrast-more:hover:ring-primary-hover" href="/sync-client">Sync Client</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/objectbox-sync-server">ObjectBox Sync Server</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/sync-server-configuration">Sync Server Configuration<span class="group relative rounded-full straight-corners:rounded-sm w-5 h-5 after:grid-area-1-1 after:absolute after:-top-1 after:grid after:-left-1 after:w-7 after:h-7 hover:bg-tint-active hover:text-current"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-right.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon grid flex-shrink-0 size-3 m-1 text-current transition-transform opacity-6 group-hover:opacity-11 contrast-more:opacity-11 rotate-0"></svg></span></a><div class="[&_ul>li]:opacity-1" style="opacity:0;height:0px;display:none"><ul class="flex flex-col gap-y-0.5 ml-5 my-2 border-tint-subtle sidebar-list-default:border-l sidebar-list-line:border-l"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/sync-server-configuration/jwt-authentication">JWT Authentication</a></li></ul></div></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/data-model-evolution">Data model evolution</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/sync-cluster">Sync Cluster</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/mongodb-sync-connector">MongoDB Sync Connector</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/advanced">Advanced Sync<span class="group relative rounded-full straight-corners:rounded-sm w-5 h-5 after:grid-area-1-1 after:absolute after:-top-1 after:grid after:-left-1 after:w-7 after:h-7 hover:bg-tint-active hover:text-current"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-right.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon grid flex-shrink-0 size-3 m-1 text-current transition-transform opacity-6 group-hover:opacity-11 contrast-more:opacity-11 rotate-0"></svg></span></a><div class="[&_ul>li]:opacity-1" style="opacity:0;height:0px;display:none"><ul class="flex flex-col gap-y-0.5 ml-5 my-2 border-tint-subtle sidebar-list-default:border-l sidebar-list-line:border-l"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/advanced/object-ids">Object IDs and Sync</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/advanced/embedded-sync-server">Embedded Sync Server</a></li></ul></div></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/troubleshooting-sync">Troubleshooting Sync</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/graphql-database">GraphQL<span class="group relative rounded-full straight-corners:rounded-sm w-5 h-5 after:grid-area-1-1 after:absolute after:-top-1 after:grid after:-left-1 after:w-7 after:h-7 hover:bg-tint-active hover:text-current"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-right.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon grid flex-shrink-0 size-3 m-1 text-current transition-transform opacity-6 group-hover:opacity-11 contrast-more:opacity-11 rotate-0"></svg></span></a><div class="[&_ul>li]:opacity-1" style="opacity:0;height:0px;display:none"><ul class="flex flex-col gap-y-0.5 ml-5 my-2 border-tint-subtle sidebar-list-default:border-l sidebar-list-line:border-l"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/graphql-database/graphql-queries">GraphQL Queries</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/graphql-database/graphql-mutations">GraphQL Mutations</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between p-1.5 pl-3 rounded-md straight-corners:rounded-none text-sm font-normal text-balance text-tint-strong/7 hover:text-tint-strong hover:bg-tint-hover contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:absolute before:inset-y-0 before:-left-px [&+div_a]:pl-5 sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none sidebar-list-line:rounded-l-none" href="/graphql-database/graphql-python-client">GraphQL Python Client</a></li></ul></div></li><li class="flex flex-col group/page-group-item"><div class="flex items-center gap-3 px-3 z-[1] sticky -top-5 pt-6 group-first/page-group-item:-mt-5 pb-3 -mb-1.5 text-xs tracking-wide font-semibold uppercase [mask-image:linear-gradient(rgba(0,0,0,1)_70%,rgba(0,0,0,0))] bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base [html.sidebar-default.theme-gradient_&]:bg-gradient-primary [html.sidebar-default.theme-gradient.tint_&]:bg-gradient-tint">ObjectBox Database Developer Docs</div><ul class="flex flex-col gap-y-0.5"><li class="flex flex-col"><a class="flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong" href="https://docs.objectbox.io/">Java, Kotlin, Flutter/Dart<svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/arrow-up-right-from-square.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [&>path]:transition-[opacity] [&>path]:[opacity:0.40] group-hover:[&>path]:[opacity:1]"></svg></a></li><li class="flex flex-col"><a class="flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong" href="https://cpp.objectbox.io/">C, C++<svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/arrow-up-right-from-square.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [&>path]:transition-[opacity] [&>path]:[opacity:0.40] group-hover:[&>path]:[opacity:1]"></svg></a></li><li class="flex flex-col"><a class="flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong" href="https://swift.objectbox.io/">Swift<svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/arrow-up-right-from-square.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [&>path]:transition-[opacity] [&>path]:[opacity:0.40] group-hover:[&>path]:[opacity:1]"></svg></a></li><li class="flex flex-col"><a class="flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong" href="https://golang.objectbox.io/">Go<svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/arrow-up-right-from-square.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [&>path]:transition-[opacity] [&>path]:[opacity:0.40] group-hover:[&>path]:[opacity:1]"></svg></a></li></ul></li></ul><div class="relative z-[2] lg:absolute mt-6 left-0 right-2 bottom-0 pointer-events-none sidebar-filled:pl-2 sidebar-filled:pb-2 bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base before:hidden lg:before:block before:content-[""] before:absolute before:inset-x-0 before:bottom-full before:h-8 before:bg-gradient-to-b before:from-transparent before:to-tint-base sidebar-filled:before:to-tint-subtle theme-muted:before:to-tint-subtle theme-bold-tint:before:to-tint-subtle [html.sidebar-filled.theme-muted_&]:before:to-tint-base [html.sidebar-filled.theme-bold.tint_&]:before:to-tint-base"><a target="_blank" class="text-sm font-semibold text-tint flex flex-row items-center px-5 py-4 sidebar-filled:px-3 rounded-lg straight-corners:rounded-none hover:bg-tint hover:text-tint-strong ring-2 lg:ring-1 ring-inset ring-tint-subtle transition-colors pointer-events-auto" href="https://www.gitbook.com/?utm_source=content&utm_medium=trademark&utm_campaign=-MG8Rp3u8P9P7cUT3_pP"><svg style="mask-image:url(https://static.gitbook.com/~gitbook/static/icons/svgs/custom-icons/gitbook.svg?v=2);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 mr-3"></svg>Powered by GitBook</a></div></div></div></aside><div class="flex-1 flex flex-col"><!--$--><div class="flex flex-row-reverse justify-end grow"><aside class="group/aside hidden xl:flex flex-col basis-56 grow-0 shrink-0 break-anywhere text-tint contrast-more:text-tint-strong sticky lg:top-0 lg:max-h-screen site-header:lg:top-16 site-header:lg:max-h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:max-h-[calc(100vh_-_6.75rem)] page-api-block:xl:max-2xl:z-10 page-api-block:xl:max-2xl:fixed page-api-block:xl:max-2xl:right-8 page-api-block:xl:max-2xl:w-56 page-api-block:xl:max-2xl:bg-tint/9 page-api-block:xl:max-2xl:contrast-more:bg-tint page-api-block:xl:max-2xl:backdrop-blur-lg page-api-block:xl:max-2xl:border page-api-block:xl:max-2xl:border-tint page-api-block:xl:max-2xl:hover:shadow-lg page-api-block:xl:max-2xl:hover:shadow-tint-12/1 page-api-block:xl:max-2xl:dark:hover:shadow-tint-1/1 page-api-block:xl:max-2xl:rounded-md page-api-block:xl:max-2xl:h-auto page-api-block:xl:max-2xl:my-8 page-api-block:p-2"><div class="hidden page-api-block:xl:max-2xl:flex text-xs tracking-wide font-semibold uppercase flex-row items-center gap-2"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/block-quote.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3"></svg>On this page<svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-down.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3 opacity-6 ml-auto page-api-block:xl:max-2xl:group-hover/aside:hidden"></svg></div><div class="overflow-y-auto overflow-x-visible flex flex-col shrink pb-12 sticky lg:top:0 site-header:lg:top-16 site-header-sections:lg:top-[6.75rem] gap-6 pt-8 page-api-block:xl:max-2xl:py-0 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:group-hover/aside:flex"><!--$?--><template id="B:0"></template><!--/$--><div class="flex flex-col gap-3 sidebar-list-default:px-3 border-t first:border-none border-tint-subtle py-4 first:pt-0 page-api-block:xl:max-2xl:px-3 empty:hidden"><!--$--><div class="flex flex-col gap-3 text-sm mt-2"><div class="flex flex-wrap items-center gap-2"><p>Was this helpful?</p><div class="bg-tint-base border border-tint-subtle contrast-more:border-tint-12 rounded-full"><div class="flex"><button class="p-2 hover:bg-primary-hover hover:text-primary-strong first:pl-2.5 last:pr-2.5 first:rounded-l-full last:rounded-r-full disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit contrast-more:hover:ring-1 ring-tint disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="No" title="No"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 13.3737C4.87421 13.5572 5.19025 13.5386 5.3737 13.3322C7.30371 11.1609 10.6963 11.1609 12.6263 13.3322C12.8098 13.5386 13.1258 13.5572 13.3322 13.3737C13.5386 13.1902 13.5572 12.8742 13.3737 12.6678C11.0459 10.049 6.9541 10.049 4.6263 12.6678C4.44284 12.8742 4.46143 13.1902 4.66782 13.3737ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 hover:bg-primary-hover hover:text-primary-strong first:pl-2.5 last:pr-2.5 first:rounded-l-full last:rounded-r-full disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit contrast-more:hover:ring-1 ring-tint disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Not sure" title="Not sure"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.5 12C4.5 11.7239 4.72386 11.5 5 11.5H13C13.2761 11.5 13.5 11.7239 13.5 12C13.5 12.2761 13.2761 12.5 13 12.5H5C4.72386 12.5 4.5 12.2761 4.5 12ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 hover:bg-primary-hover hover:text-primary-strong first:pl-2.5 last:pr-2.5 first:rounded-l-full last:rounded-r-full disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit contrast-more:hover:ring-1 ring-tint disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Yes, it was!" title="Yes, it was!"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 11.6263C4.87421 11.4428 5.19025 11.4614 5.3737 11.6678C7.30371 13.8391 10.6963 13.8391 12.6263 11.6678C12.8098 11.4614 13.1258 11.4428 13.3322 11.6263C13.5386 11.8098 13.5572 12.1258 13.3737 12.3322C11.0459 14.951 6.9541 14.951 4.6263 12.3322C4.44284 12.1258 4.46143 11.8098 4.66782 11.6263ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button></div></div></div></div><!--/$--></div></div><div class="pb-4 sticky bottom-0 bg-tint-base theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint z-10 mt-auto flex flex-col page-api-block:xl:max-2xl:pb-0 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:group-hover/aside:flex page-api-block:xl:max-2xl:bg-transparent"><div class="" data-visual-test="removed"></div></div></aside><main class="flex-1 relative py-8 lg:px-12 break-anywhere page-api-block:xl:max-2xl:pr-0 page-api-block:max-w-[1654px] page-api-block:mx-auto"><header class="max-w-3xl mx-auto mb-6 space-y-3 page-api-block:ml-0"><h1 class="text-4xl font-bold flex items-center gap-4">Sync Client</h1><p class="text-lg text-tint">How to create an ObjectBox Sync client and connect to an ObjectBox Sync server.</p></header><!--$--><div class="[&>*+*]:mt-5 grid whitespace-pre-wrap"><h2 id="objectbox-sync-enabled-library" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#objectbox-sync-enabled-library" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">ObjectBox Sync enabled library</div></h2><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">The standard ObjectBox (database) library does not include an ObjectBox Sync implementation. Depending on the programming language, it will include the Sync <strong class="font-bold">API</strong>, but not the <strong class="font-bold">implementation</strong>. For example, ObjectBox Java in its standard version allows compiling using the Sync API, but won't provide any Sync logic due to the missing implementation.</p><div class="hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [&_.can-override-bg]:bg-tint-active [&_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="flex flex-row"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/circle-info.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 mr-4 mt-0.5 leading-normal text-primary"></svg><div class="flex-1 space-y-4 [&_.hint]:border [&_pre]:border"><p class="w-full mx-auto decoration-primary/6 max-w-3xl [&_a]:text-primary [&_a:hover]:text-primary-strong flip-heading-hash">If you haven't used ObjectBox before, please also be aware of documentation for the standard (non-sync) edition of ObjectBox (the ObjectBox DB) for your programming language (<a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://docs.objectbox.io/">Java/Kotlin</a>, <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://swift.objectbox.io/">Swift</a>, <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://cpp.objectbox.io/">C and C++</a>, <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://golang.objectbox.io/">Go</a>). You are currently looking at the documentation specific to ObjectBox Sync, which does not cover ObjectBox basics.</p></div></div></div><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">By now, you were likely in touch with the ObjectBox team and have access to Sync Server and potentially a special Sync Client version. For some platforms, we maintain packages that you can include as dependencies.</p><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-kotlin-jvm-android" id="tab-java-kotlin-jvm-android" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java/Kotlin (JVM, Android)</button><button role="tab" aria-selected="false" aria-controls="swift" id="tab-swift" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter" id="tab-dart-flutter" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-c" id="tab-c-c" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C/C++</button><button role="tab" aria-selected="false" aria-controls="go" id="tab-go" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button><button role="tab" aria-selected="false" aria-controls="others" id="tab-others" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Others</button></div><div role="tabpanel" id="java-kotlin-jvm-android" aria-labelledby="tab-java-kotlin-jvm-android" class="p-4"><div class="w-full space-y-4"><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Follow the <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://docs.objectbox.io/getting-started">Getting Started</a> page instructions. Then change the applied Gradle plugin to the sync variant:</p><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R261cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// This will try to add the native dependency automatically:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">apply plugin: "io.objectbox.sync" // instead of "io.objectbox"</span></span></code></pre></div><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">This will automatically add the Sync variant of the required JNI library for your platform.</p><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">If needed, e.g. to publish a JVM app that supports multiple platforms or to add Linux ARM support, add the libraries manually:</p><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R561cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line highlighted"><span class="highlight-line-content">// Android<!-- --> </span></span><span class="highlight-line highlighted"><span class="highlight-line-content">implementation("io.objectbox:objectbox-sync-android:$objectboxVersion")<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line highlighted"><span class="highlight-line-content">// JVM<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">implementation("io.objectbox:objectbox-sync-linux:$objectboxVersion")<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">implementation("io.objectbox:objectbox-sync-macos:$objectboxVersion")<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">implementation("io.objectbox:objectbox-sync-windows:$objectboxVersion")<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// JVM Linux on ARM (not added automatically)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">implementation("io.objectbox:objectbox-sync-linux-arm64:$objectboxVersion") <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">implementation("io.objectbox:objectbox-sync-linux-armv7:$objectboxVersion")</span></span></code></pre></div></div></div><div role="tabpanel" id="swift" aria-labelledby="tab-swift" class="p-4 hidden"><div class="w-full space-y-4"><div class="hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [&_.can-override-bg]:bg-tint-active [&_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex flex-row"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/circle-info.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 mr-4 mt-0.5 leading-normal text-primary"></svg><div class="flex-1 space-y-4 [&_.hint]:border [&_pre]:border"><p class="w-full mx-auto decoration-primary/6 max-w-3xl [&_a]:text-primary [&_a:hover]:text-primary-strong flip-heading-hash">This gives you specific information about how to get the Sync-enabled version of ObjectBox. Please also check our <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://swift.objectbox.io/install">general installation and update </a>docs for in-depth information.</p></div></div></div><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">We may distribute ObjectBox Sync for Swift in our <strong class="font-bold">Cocoapods</strong> staging repository (we let you know). In that case, these are some typical lines to put in your Podfile (please check the version, there might be a newer one available):</p><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R3a1cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">target 'MyCoolSyncProject' do<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> use_frameworks!<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> pod 'ObjectBox', '4.0.0-sync'<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">end<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"></span></span></code></pre></div></div></div><div role="tabpanel" id="dart-flutter" aria-labelledby="tab-dart-flutter" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">See the <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://docs.objectbox.io/getting-started">Getting Started</a> instructions for Flutter or Dart and note the different instructions for Sync (different Flutter library, increasing Android minSdkVersion, install script parameter).</p><!--/$--></div></div><div role="tabpanel" id="c-c" aria-labelledby="tab-c-c" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1i1cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">bash <(curl -s https://raw.githubusercontent.com/objectbox/objectbox-c/main/download.sh) --sync</span></span></code></pre></div><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Or use <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://cmake.org/cmake/help/latest/module/FetchContent.html">CMake's FetchContent</a> to get ObjectBox headers and library ready to use in your project:</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"><div class="text-xs tracking-wide text-tint leading-none inline-flex items-center justify-center bg-tint rounded-t straight-corners:rounded-t-s px-3 py-2">CMakeLists.txt</div></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm rounded-ss-none"><code id=":R3i1cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">include(FetchContent)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">FetchContent_Declare(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> objectbox<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> GIT_REPOSITORY https://github.com/objectbox/objectbox-c.git<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> GIT_TAG v0.15.2<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">FetchContent_MakeAvailable(objectbox)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">add_executable(myapp main.cpp)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">target_link_libraries(myapp objectbox-sync)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go" aria-labelledby="tab-go" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1m1cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">bash <(curl -s https://raw.githubusercontent.com/objectbox/objectbox-go/main/install.sh) --sync</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="others" aria-labelledby="tab-others" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Please reach out to the ObjectBox team</p><!--/$--></div></div></div><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Now it's time to <strong class="font-bold">verify</strong> the setup using a flag telling if Sync is available; for example, simply log the result:</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java" id="tab-java" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin" id="tab-kotlin" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-1" id="tab-swift-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-1" id="tab-dart-flutter-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c" id="tab-c" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-1" id="tab-c-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-1" id="tab-go-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button><button role="tab" aria-selected="false" aria-controls="others-1" id="tab-others-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Others</button></div><div role="tabpanel" id="java" aria-labelledby="tab-java" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R261sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">import io.objectbox.sync.Sync;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">String syncAvailable = Sync.isAvailable() ? "available" : "unavailable";<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">System.out.println("ObjectBox Sync is " + syncAvailable);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin" aria-labelledby="tab-kotlin" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2a1sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">import io.objectbox.sync.Sync<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">val syncAvailable = if (Sync.isAvailable()) "available" else "unavailable"<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">Log.d(App.TAG, "ObjectBox Sync is $syncAvailable")</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-1" aria-labelledby="tab-swift-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2e1sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">Sync.isAvailable()</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="dart-flutter-1" aria-labelledby="tab-dart-flutter-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2i1sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">Sync.isAvailable()</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c" aria-labelledby="tab-c" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2m1sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">obx::Sync::isAvailable()</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-1" aria-labelledby="tab-c-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2q1sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">obx_has_feature(OBXFeature_Sync)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-1" aria-labelledby="tab-go-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2u1sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">objectbox.SyncIsAvailable()</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="others-1" aria-labelledby="tab-others-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R321sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// Depending on the platform something like:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">Sync.isAvailable()</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h2 id="enable-your-objects-for-objectbox-sync" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#enable-your-objects-for-objectbox-sync" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Enable your Objects for ObjectBox Sync</div></h2><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">ObjectBox Sync allows you to define which objects are synced and which are not. This is done at an object type level (a "class" in many programming languages). By default, an object (type) is local only: objects are kept in the database on the local device and do not get synced to other devices.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">To enable sync for an object type, you add a <strong class="font-bold">"sync" annotation</strong> to the type definition. This is typically the entity source file, or, if you are using ObjectBox Generator, the FlatBuffers schema file:</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-1" id="tab-java-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-1" id="tab-kotlin-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-2" id="tab-swift-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-2" id="tab-dart-flutter-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-c-using-generator" id="tab-c-c-using-generator" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C/C++ (using Generator)</button><button role="tab" aria-selected="false" aria-controls="go-2" id="tab-go-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-1" aria-labelledby="tab-java-1" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R162sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">@Sync<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">@Entity<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">public class User {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-1" aria-labelledby="tab-kotlin-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1a2sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">@Sync<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">@Entity<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">data class User(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-2" aria-labelledby="tab-swift-2" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1e2sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// objectbox: sync<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">class User: Entity {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="dart-flutter-2" aria-labelledby="tab-dart-flutter-2" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1i2sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">@Entity<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">@Sync<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">class User {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-c-using-generator" aria-labelledby="tab-c-c-using-generator" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1m2sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">/// objectbox: sync<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">table User {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-2" aria-labelledby="tab-go-2" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1q2sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// `objectbox:"sync"`<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">type User struct {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Once the sync annotation is set on the intended types, you need to rebuild (e.g. Java/Kotlin) or trigger the ObjectBox generator (e.g. C and C++). This activates a "sync flag" in the metamodel (e.g. the model JSON file is updated).</p><!--/$--><!--$--><div class="hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [&_.can-override-bg]:bg-tint-active [&_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="flex flex-row"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/circle-info.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 mr-4 mt-0.5 leading-normal text-primary"></svg><div class="flex-1 space-y-4 [&_.hint]:border [&_pre]:border"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl [&_a]:text-primary [&_a:hover]:text-primary-strong flip-heading-hash">At this point, it is not allowed to change a non-synced object type to a synced one. This would raise questions on how to handle pre-existing data, e.g. should it be deleted, synced (how exactly? using how many transactions? ...), or kept locally until objects are put again? We welcome your input on your use case.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl [&_a]:text-primary [&_a:hover]:text-primary-strong flip-heading-hash">Additionally, there may only be relations between sync-enabled or non-sync entities, not across the boundary.</p><!--/$--></div></div></div><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">If you already have a non-synced type that you now want to sync (see also the info box above), these are the typical options you have:</p><!--/$--><!--$--><ol class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'1.';--font-family:inherit;font-size:min(1em, 24px)"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">If you are still in development, add the sync annotation and wipe your database(s) to start fresh with that new data model</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'2.';--font-family:inherit;font-size:min(1em, 24px)"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">"Replace" the entity type using a new UID (check schema changes docs for the ObjectBox binding you are using). You can keep the type name; to ObjectBox it will be a different type as the UID is different. This will delete all existing data in that type.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'3.';--font-family:inherit;font-size:min(1em, 24px)"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">Have a second, synced, object type and migrate your data in your code following your rules.</p><!--/$--></div></li><!--/$--></ol><!--/$--><!--$--><h2 id="start-the-sync-client" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#start-the-sync-client" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Start the Sync Client</div></h2><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Create a Sync client for your Store and start it. It connects to a given sync server URL using some form of credentials to authenticate with the server. A minimal setup can look like this:</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-2" id="tab-java-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-2" id="tab-kotlin-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-3" id="tab-swift-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-3" id="tab-dart-flutter-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-2" id="tab-c-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-3" id="tab-c-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-3" id="tab-go-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-2" aria-labelledby="tab-java-2" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R164kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncClient syncClient = Sync.client(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> boxStore, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> "ws://127.0.0.1" /* Use wss for encrypted traffic. */, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> SyncCredentials.none()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">).buildAndStart(); // Connect and start syncing.</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-2" aria-labelledby="tab-kotlin-2" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1a4kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val syncClient = Sync.client(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> boxStore,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> "ws://127.0.0.1" /* Use wss for encrypted traffic. */,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> SyncCredentials.none()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">).buildAndStart() // Connect and start syncing.</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-3" aria-labelledby="tab-swift-3" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1e4kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">try Sync.makeClient(store: store, urlString: "ws://127.0.0.1:9999",<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> credentials: SyncCredentials.makeNone())<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">try client.start()</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="dart-flutter-3" aria-labelledby="tab-dart-flutter-3" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1i4kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncClient syncClient = Sync.client(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> store,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'ws://127.0.0.1:9999', // wss for SSL, ws for unencrypted traffic<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> SyncCredentials.none());<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.start(); // connect and start syncing</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-2" aria-labelledby="tab-c-2" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1m4kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">std::shared_ptr<obx::SyncClient> syncClient = obx::Sync::client(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> store, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> "ws://127.0.0.1:9999", // wss for SSL, ws for unencrypted traffic<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> obx::SyncCredentials::none()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->start(); // connect and start syncing</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-3" aria-labelledby="tab-c-3" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1q4kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">OBX_sync* sync_client = obx_sync(store, "ws://127.0.0.1:9999"); // wss for SSL<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_credentials(sync_client, OBXSyncCredentialsType_NONE, NULL, 0);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_start(sync_client); // connect and start syncing</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-3" aria-labelledby="tab-go-3" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1u4kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">syncClient, err := objectbox.NewSyncClient(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> store,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> "ws://127.0.0.1", // wss for SSL, ws for unencrypted traffic<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> objectbox.SyncCredentialsNone())<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">if err != nil {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> err = syncClient.Start() // Connect and start syncing.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">} </span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><div class="hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [&_.can-override-bg]:bg-tint-active [&_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="flex flex-row"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/circle-info.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 mr-4 mt-0.5 leading-normal text-primary"></svg><div class="flex-1 space-y-4 [&_.hint]:border [&_pre]:border"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl [&_a]:text-primary [&_a:hover]:text-primary-strong flip-heading-hash">The example uses wss://127.0.0.1 for the server endpoint. This is the IP address of localhost and assumes that you run the server and client(s) on the same machine. If it's separate machines, you need to exhange 127.0.0.1 with an reachable IP address of the server, or, some valid DNS name.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl [&_a]:text-primary [&_a:hover]:text-primary-strong flip-heading-hash">Using Android emulator? You can use 10.0.2.2 to reach the host (the machine running the emulator). <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://developer.android.com/studio/run/emulator-networking">Details</a></p><!--/$--></div></div></div><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Sync client is started by calling <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">start()/buildAndStart()</code>. It will then try to connect to the server, authenticate and start syncing. Read below for more configuration options you can use before starting the connection.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Once the client is logged in, the server will push any changes it has missed. The server will also push any future changes while the client remains connected. This <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="/sync-client#controlling-sync-updates-behavior">sync updates behavior</a> can be configured.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">All of this happens asynchronously. To observe these events (log in, sync completed, …) read below on how to <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="/sync-client#listening-to-events">configure an event listener</a>.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">The client will now also push changes to the server for each Store transaction.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Should the client get disconnected, e.g. due to internet connection issues, it will automatically try to reconnect using an exponential back-off. Once the connection succeeds, data synchronization resumes.</p><!--/$--><!--$--><h3 id="drop-off-send-only-clients" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#drop-off-send-only-clients" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Drop-off, send-only clients</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">For some use cases, client should only report data and thus only send updates without ever receiving any data. We call those "drop-off clients". Technically, from an API perspective, these clients do not request updates from the server. Because requesting updates is the default, the sync client API has to be configured to do "manual" updates to actually disable updates from the server. This configuration has to happen before the client starts.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R6sd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// C++; create syncClient as above, but do not start() just yet<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->setRequestUpdatesMode(OBXRequestUpdatesMode_MANUAL);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->start();</span></span></code></pre></div><!--/$--><!--$--><h3 id="secure-connection" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#secure-connection" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Secure Connection</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">When using <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">wss</code> as the protocol in the server URL a TLS encrypted connection is established. Use <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">ws</code> instead to turn off transport encryption (insecure, not recommended! e.g. only use for testing).</p><!--/$--><!--$--><h2 id="authentication-options" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#authentication-options" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Authentication options</div></h2><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">There are currently multiple supported options for authenticating clients with a Sync server.</p><!--/$--><!--$--><h3 id="jwt-authentication" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#jwt-authentication" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">JWT authentication</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Clients can be authenticated using tokens in JWT (JSON web token) format. The general process is outlined in the <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="/sync-server-configuration/jwt-authentication">server-side JWT documentation</a>. Your client application typically will use a JWT authentication provider SDK to get a token in JWT format. This token is then set as a credential using the ObjectBox Sync client API:</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-3" id="tab-java-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-3" id="tab-kotlin-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-4" id="tab-swift-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-4" id="tab-dart-flutter-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-4" id="tab-c-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-5" id="tab-c-5" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-4" id="tab-go-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-3" aria-labelledby="tab-java-3" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R168kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">String idToken = "<token>"; // Get from JWT authentication provider<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.jwtIdToken(idToken);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Options for other types of JWT are available:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// jwtAccessToken(token), jwtRefreshToken(token), jwtCustomToken(token)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-3" aria-labelledby="tab-kotlin-3" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1a8kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val idToken: String = TODO() // Get from JWT authentication provider<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">val credential = SyncCredentials.jwtIdToken(idToken)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Options for other types of JWT are available:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// jwtAccessToken(token), jwtRefreshToken(token), jwtCustomToken(token)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-4" aria-labelledby="tab-swift-4" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1e8kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">let idToken: String = "TODO" // Get from JWT authentication provider<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">let credential = SyncCredentials.makeJwtIdToken(idToken)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Options for other types of JWT are available:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// makeJwtAccessToken(...), makeJwtRefreshToken(...), makeJwtCustomToken(...)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="dart-flutter-4" aria-labelledby="tab-dart-flutter-4" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1i8kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">String idToken = "<token>"; // Get from JWT authentication provider<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.jwtIdToken(idToken);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Options for other types of JWT are available:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// jwtAccessToken(token), jwtRefreshToken(token), jwtCustomToken(token)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-4" aria-labelledby="tab-c-4" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1m8kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// TODO</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-5" aria-labelledby="tab-c-5" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1q8kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// TODO</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-4" aria-labelledby="tab-go-4" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1u8kd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// TODO</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="shared-secret" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#shared-secret" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Shared secret</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">This can be any pre-shared secret string or a byte sequence.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-4" id="tab-java-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-4" id="tab-kotlin-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-5" id="tab-swift-5" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-5" id="tab-dart-flutter-5" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-6" id="tab-c-6" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-7" id="tab-c-7" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-5" id="tab-go-5" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-4" aria-labelledby="tab-java-4" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R169cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.sharedSecret("<secret>");</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-4" aria-labelledby="tab-kotlin-4" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1a9cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val credential = SyncCredentials.sharedSecret("<secret>")</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-5" aria-labelledby="tab-swift-5" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1e9cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">let credential = SyncCredentials.makeSharedSecret("<secret>")</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="dart-flutter-5" aria-labelledby="tab-dart-flutter-5" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1i9cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// use a string<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.sharedSecretString("<secret>");<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// or a byte vector<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">Uint8List secret = Uint8List.fromList([0, 46, 79, 193, 185, 65, 73, 239, 15, 5]);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.sharedSecretUint8List(secret);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-6" aria-labelledby="tab-c-6" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1m9cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// use a string<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx::SyncCredentials cred = obx::SyncCredentials::sharedSecret("string");<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// or a byte vector<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">std::vector<uint8_t> secret = {0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx::SyncCredentials cred = obx::SyncCredentials::sharedSecret(std::move(secret));</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-7" aria-labelledby="tab-c-7" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1q9cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// use a string<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">const char* secret = "secret"<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_credentials(sync_client, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> OBXSyncCredentialsType_SHARED_SECRET, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> secret, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> strlen(secret)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// or a byte vector<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">uint8_t secret[] = {0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_credentials(sync_client, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> OBXSyncCredentialsType_SHARED_SECRET, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> secret, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> sizeof(secret)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-5" aria-labelledby="tab-go-5" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1u9cd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// use a string<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">var cred = objectbox.SyncCredentialsSharedSecret([]byte("string"))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// or a byte vector<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">var secret = []byte{0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">var cred = objectbox.SyncCredentialsSharedSecret(secret)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="google-sign-in" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#google-sign-in" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Google Sign-In</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">The ObjectBox Sync server supports authenticating users using their Google account. This assumes <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://developers.google.com/identity/sign-in/android/start-integrating">Google Sign-In</a> is integrated into your app and it has <a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="https://developers.google.com/identity/sign-in/android/backend-auth">obtained the user's ID token</a>.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-5" id="tab-java-5" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-5" id="tab-kotlin-5" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-6" id="tab-swift-6" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-6" id="tab-dart-flutter-6" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-8" id="tab-c-8" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-9" id="tab-c-9" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-6" id="tab-go-6" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-5" aria-labelledby="tab-java-5" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R16a4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.google(account.getIdToken());</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-5" aria-labelledby="tab-kotlin-5" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1aa4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val credential = SyncCredentials.google(account.getIdToken())</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-6" aria-labelledby="tab-swift-6" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><i class="font-italic">Coming soon!</i></p><!--/$--></div></div><div role="tabpanel" id="dart-flutter-6" aria-labelledby="tab-dart-flutter-6" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ia4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// use a string<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.googleAuthString("<secret>");<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// or a byte vector<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">Uint8List secret = Uint8List.fromList([0, 46, 79, 193, 185, 65, 73, 239, 15, 5]);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.googleAuthUint8List(secret);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-8" aria-labelledby="tab-c-8" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><i class="font-italic">Coming soon!</i></p><!--/$--></div></div><div role="tabpanel" id="c-9" aria-labelledby="tab-c-9" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1qa4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">obx_sync_credentials(sync_client, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> OBXSyncCredentialsType_GOOGLE_AUTH, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> googleIdToken, <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> strlen(googleIdToken)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> );</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-6" aria-labelledby="tab-go-6" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ua4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// use a string<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">var cred = objectbox.SyncCredentialsGoogleAuth([]byte("string"))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// or a byte vector<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">var secret = []byte{0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">var cred = objectbox.SyncCredentialsGoogleAuth(secret)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="no-authentication-insecure" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#no-authentication-insecure" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">No authentication (insecure)</div></h3><!--/$--><!--$--><div class="hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-red-500/2 border-red-500/4 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="flex flex-row"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/triangle-exclamation.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 mr-4 mt-0.5 leading-normal text-red-500 dark:text-red-400"></svg><div class="flex-1 space-y-4 [&_.hint]:border [&_pre]:border"><!--$--><p class="w-full mx-auto max-w-3xl text-red-950 dark:text-red-50 [&_a]:text-red-800 [&_a:hover]:text-red-900 dark:[&_a]:text-red-400 dark:[&_a:hover]:text-red-300 [&_.can-override-bg]:bg-red-500/3 [&_.can-override-text]:text-red-400 decoration-red-800/6 dark:decoration-red-400/6 flip-heading-hash">Never use this option in an app shipped to customers. It is inherently insecure and allows anyone to connect to the sync server.</p><!--/$--></div></div></div><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">For development and testing, it is often easier to just have no authentication at all to quickly get things up and running.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-6" id="tab-java-6" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-6" id="tab-kotlin-6" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-7" id="tab-swift-7" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-7" id="tab-dart-flutter-7" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-10" id="tab-c-10" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-11" id="tab-c-11" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-7" id="tab-go-7" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-6" aria-labelledby="tab-java-6" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R16b4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.none();</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-6" aria-labelledby="tab-kotlin-6" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ab4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val credential = SyncCredentials.none()</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-7" aria-labelledby="tab-swift-7" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><i class="font-italic">Coming soon!</i></p><!--/$--></div></div><div role="tabpanel" id="dart-flutter-7" aria-labelledby="tab-dart-flutter-7" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ib4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncCredentials credential = SyncCredentials.none();</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-10" aria-labelledby="tab-c-10" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1mb4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">obx::SyncCredentials credential = obx::SyncCredentials::none();</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-11" aria-labelledby="tab-c-11" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1qb4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">obx_sync_credentials(sync_client, OBXSyncCredentialsType_NONE, NULL, 0)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-7" aria-labelledby="tab-go-7" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ub4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">var cred = objectbox.SyncCredentialsNone()</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h2 id="manually-start" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#manually-start" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Manually start</div></h2><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Using the example above, the sync client automatically connects to the server and starts to sync. It is also possible to just build the client and then start to sync once your code is ready to.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-7" id="tab-java-7" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-7" id="tab-kotlin-7" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button></div><div role="tabpanel" id="java-7" aria-labelledby="tab-java-7" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":Rmbsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// Just build the client.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncClient syncClient = Sync.client(...).build();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Start now.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.start();</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-7" aria-labelledby="tab-kotlin-7" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":Rqbsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">// Just build the client.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">val syncClient = Sync.client(...).build()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Start now.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.start()</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Note that a started sync client can not be started again. Stop and close an existing one and build a new one instead.</p><!--/$--><!--$--><h2 id="listening-to-events" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#listening-to-events" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Listening to events</div></h2><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">The sync client supports listening to various events, e.g. if authentication has failed or if the client was disconnected from the server. This enables other components of an app, like the user interface, to react accordingly.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-8" id="tab-java-8" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-8" id="tab-kotlin-8" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-8" id="tab-swift-8" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-8" id="tab-dart-flutter-8" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-12" id="tab-c-12" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-13" id="tab-c-13" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-8" id="tab-go-8" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-8" aria-labelledby="tab-java-8" class="p-4"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">It's possible to set one or more specific listeners that observe some events, or a general listener that observes all events. When building a Sync client use:</p><!--/$--><!--$--><ul class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">loginListener(listener)</code> to observe login events.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">completedListener(listener)</code> to observe when synchronization has completed.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">connectionListener(listener)</code> to observe connection events.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">listener(listener)</code> to observe all of the above events. Use <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">AbstractSyncListener</code> and only override methods of interest to simplify your listener implementation.</p><!--/$--></div></li><!--/$--></ul><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">See the description of each listener class and its methods for details.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Note that listeners can also be set or removed at any later point using <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncClient.setSyncListener(listener)</code> and related methods.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R56csd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncLoginListener loginListener = new SyncLoginListener() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> @Override<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> public void onLoggedIn() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Login succesful.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> @Override<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> public void onLoginFailed(long syncLoginCode) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Login failed. Returns one of SyncLoginCodes.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncCompletedListener completedListener = new SyncCompletedListener() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> @Override<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> public void onUpdatesCompleted() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // A sync has completed, client is up-to-date.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncConnectionListener connectListener = new SyncConnectionListener() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> @Override<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> public void onDisconnected() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Client disconnected from the server.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Depending on the configuration it will try to re-connect.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Set listeners when building the client.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">SyncClient syncClient = Sync.client(...)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .loginListener(loginListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .completedListener(completedListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .connectionListener(connectListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .build();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Set (or replace) a listener later.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncLoginListener(listener);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Remove an existing listener.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncConnectionListener(null);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-8" aria-labelledby="tab-kotlin-8" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">It's possible to set one or more specific listeners that observe some events, or a general listener that observes all events. When building a Sync client use:</p><!--/$--><!--$--><ul class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">loginListener(listener)</code> to observe login events.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">completedListener(listener)</code> to observe when synchronization has completed.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">connectionListener(listener)</code> to observe connection events.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">listener(listener)</code> to observe all of the above events. Use <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">AbstractSyncListener</code> and only override methods of interest to simplify your listener implementation.</p><!--/$--></div></li><!--/$--></ul><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">See the description of each listener class and its methods for details.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Note that listeners can also be set or removed at any later point using <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncClient.setSyncListener(listener)</code> and related methods.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R5acsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val loginListener: SyncLoginListener = object : SyncLoginListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> override fun onLoggedIn() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Login succesful.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> override fun onLoginFailed(syncLoginCode: Long) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Login failed. Returns one of SyncLoginCodes.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">val completedListener = SyncCompletedListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // A sync has completed, client is up-to-date.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">val connectListener = object : SyncConnectionListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> override fun onDisconnected() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Client disconnected from the server.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Depending on the configuration it will try to re-connect.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Set listeners when building the client.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">val syncClient = Sync.client(...)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .loginListener(loginListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .completedListener(completedListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .connectionListener(connectListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .build()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Set (or replace) a listener later.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncLoginListener(listener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Remove an existing listener.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncConnectionListener(null)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-8" aria-labelledby="tab-swift-8" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">It's possible to set one or more specific listeners that observe some events, or a general listener that observes all events. The SyncClient protocol offers the following properties to attach listeners:</p><!--/$--><!--$--><ul class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">loginListener</code> to observe login events.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">completedListener</code> to observe when synchronization has completed.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">connectionListener</code> to observe connection events.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">listener</code> to observe all of the above events.</p><!--/$--></div></li><!--/$--></ul><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">There is a protocol for each listener type. Note that listeners can also be set or removed at any later point by setting the listener property to <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">nil</code>.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">By implementing a listener protocol and setting the matching property in SyncClient, you are called back. Let's have a look at the available listener protocols for details:</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R5ecsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">/// Listens to login events.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">public protocol SyncLoginListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Called on a successful login.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// At this point the connection to the sync destination was established and<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// entered an operational state, in which data can be sent both ways.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> func loggedIn()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Called on a login failure with a `result` code specifying the issue.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> func loginFailed(result: SyncCode)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">/// Listens to sync completed events.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">public protocol SyncCompletedListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Called each time a sync was "completed", in the sense that the client <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// caught up with the current server state. The client is "up-to-date".<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> func updatesCompleted()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">/// Listens to sync connection events.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">public protocol SyncConnectionListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Called when connection is established; happens before an actual login<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> func connected()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Called when the client is disconnected from the sync server, e.g. due to a network error.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Depending on the configuration, the sync client typically tries to reconnect automatically,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// triggering a `SyncLoginListener` again.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> func disconnected()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">/// Listens to all possible sync events. See each protocol for detailed information.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">public protocol SyncListener: SyncLoginListener, SyncCompletedListener, SyncChangeListener, SyncConnectionListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="dart-flutter-8" aria-labelledby="tab-dart-flutter-8" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">It's possible to listen to sync-related events on the client. Use the following <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncClient</code> getters to connect to a stream:</p><!--/$--><!--$--><ul class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">Stream<SyncLoginEvent> get loginEvents</code> - such as logged-in, credentials-rejected.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">Stream<void> get completionEvents</code> to observe when synchronization has completed.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">Stream<SyncConnectionEvent> get connectionEvents</code> to observe connection events.</p><!--/$--></div></li><!--/$--></ul><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Note that these streams don't buffer events so unless you're subscribed, no events are collected. Additionally, don't forget to cancel the subscription when you don't care about the information anymore, to free up resources.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R4icsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">final client = Sync.client(...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">final subscription = client.loginEvents.listen((SycnLoginEvent event) { <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> if (event == SyncLoginEvent.loggedIn) print('Logged in successfully');<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">});<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">client.start();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// don't forget unsubscribe if you don't care about the events anymore<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">subscription.cancel();</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-12" aria-labelledby="tab-c-12" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1mcsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">struct LoginListener : public obx::SyncClientLoginListener {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> void loggedIn() noexcept override;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> void loginFailed(OBXSyncCode code) noexcept override;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">auto loginListener = std::make_shared<LoginListener>();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->setLoginListener(loginListener);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// there can be only one listener of a given type, so calling again with a <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// different callback changes the listener (un-assigns the previous one)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->setLoginListener(...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// reset (remove) a listener<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->setLoginListener(nullptr);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-13" aria-labelledby="tab-c-13" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1qcsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">void login_listener(void* arg) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (*(int*) arg)++;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">void main() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> int login_listener_arg = 0;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> obx_sync_listener_login(sync_client, login_listener, &login_listener_arg);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// there can be only one listener of a given type, so calling again with a <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// different callback changes the listener (un-assigns the previous one)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_listener_login(sync_client, ..., ...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// reset (remove) a listener<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_listener_login(sync_client, NULL, NULL);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-8" aria-labelledby="tab-go-8" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ucsd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">syncClient.SetLoginListener(func() { println("Logged-in") })<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// there can be only one listener of a given type, so calling again with a <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// different callback changes the listener (un-assigns the previous one)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.SetLoginListener(func() { ... })<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// reset (remove) a listener<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.SetLoginListener(nil)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h2 id="advanced" class="text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#advanced" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Advanced</div></h2><!--/$--><!--$--><h3 id="listening-to-incoming-data-changes" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#listening-to-incoming-data-changes" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Listening to incoming data changes</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">For advanced use cases, it might be useful to know exactly which objects have changed during an incoming sync update. This is typically not necessary, as observing a box or a query may be easier.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">On each sync update received on the client, the listener is called with an array of "Sync Change" objects, one for each affected entity type. It includes a list of affected object IDs - the ones that were put or removed in the incoming update.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-9" id="tab-java-9" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-9" id="tab-kotlin-9" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-9" id="tab-swift-9" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-9" id="tab-dart-flutter-9" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-14" id="tab-c-14" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-15" id="tab-c-15" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-9" id="tab-go-9" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-9" aria-labelledby="tab-java-9" class="p-4"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Use <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">changeListener(changeListener)</code> when building the client and pass a <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncChangeListener</code> to receive detailed information for each sync update. Or set or remove it at any later point using <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncClient.setSyncChangeListener(changeListener)</code>.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R26e4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncChangeListener changeListener = syncChanges -> {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> for (SyncChange syncChange : syncChanges) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // This is equal to Example_.__ENTITY_ID.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> long entityId = syncChange.getEntityTypeId();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // The @Id values of changed and removed entities.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> long[] changed = syncChange.getChangedIds();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> long[] removed = syncChange.getRemovedIds();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Set the listener when building the client.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncBuilder.changeListener(changeListener);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Or set the listener later.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncChangeListener(changeListener);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Calling again replaces an existing listener.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncChangeListener(changeListener);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Remove an existing listener.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncChangeListener(null);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-9" aria-labelledby="tab-kotlin-9" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Use <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">changeListener(changeListener)</code> when building the client and pass a <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncChangeListener</code> to receive detailed information for each sync update. Or set or remove it at any later point using <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">SyncClient.setSyncChangeListener(changeListener)</code>.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2ae4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val changeListener = SyncChangeListener { syncChanges -><!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> for (syncChange in syncChanges) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // This is equal to Example_.__ENTITY_ID.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> val entityId = syncChange.entityTypeId<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // The @Id values of changed and removed entities.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> val changed = syncChange.changedIds<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> val removed = syncChange.removedIds<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Set the listener when building the client.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncBuilder.changeListener(changeListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Or set the listener later.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncChangeListener(changeListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Calling again replaces an existing listener.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncChangeListener(changeListener)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// Remove an existing listener.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.setSyncChangeListener(null)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-9" aria-labelledby="tab-swift-9" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><i class="font-italic">Coming soon!</i></p><!--/$--></div></div><div role="tabpanel" id="dart-flutter-9" aria-labelledby="tab-dart-flutter-9" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash">Use <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">Stream<List<SyncChange>> get changeEvents</code> on the SyncClient to receive detailed information for each sync update. Make sure to cancel the subscription when you don't need the information anymore to clear up resources.</p><!--/$--><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R2ie4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">final subscription = client.changeEvents<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .listen((List<SyncChange> event) => event.forEach((change) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> print('${change.entity}(${change.entityId}) '<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'puts=${change.puts} removals=${change.removals}');<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }));<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// don't forget unsubscribe if you don't care about the events anymore<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">subscription.cancel();</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-14" aria-labelledby="tab-c-14" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1me4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">/// Sample listener collecting all puts and removals<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">class StatsCollector {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> struct EntityChanges {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> std::vector<obx_id> puts;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> std::vector<obx_id> removals;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> };<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> std::unordered_map<obx_schema_id, EntityChanges> statsPerEntity;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Receives changes on the object instance, forwarded by the static forward().<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> void onChanges(const OBX_sync_change_array* changes) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> for (size_t i = 0; i < changes->count; i++) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> const OBX_sync_change& change = changes->list[i];<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> EntityChanges& stats = statsPerEntity[change.entity_id];<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> if (change.puts) collect(change.puts, stats.puts);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> if (change.removals) collect(change.puts, stats.removals);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Update given vector by adding all ids from current change list.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> void collect(const OBX_id_array* ids, std::vector<obx_id>& targetVector) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> targetVector.reserve(targetVector.size() + ids->count);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> for (size_t i = 0; i < ids->count; i++) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> targetVector.push_back(ids->ids[i]);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">public:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> /// Just forwards the C-callback to the instance of this class.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> static void forward(void* arg, const OBX_sync_change_array* changes) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> static_cast<StatsCollector*>(arg)->onChanges(changes);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">void main() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> StatsCollector collector;<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient->setChangeListener(StatsCollector::forward, &collector);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-15" aria-labelledby="tab-c-15" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1qe4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">void on_puts(void* arg, obx_schema_id entity_id, const OBX_id_array* ids) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> //...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">void on_removals(void* arg, obx_schema_id entity_id, const OBX_id_array* ids) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> //...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">void change_listener(void* arg, const OBX_sync_change_array* changes) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> for (size_t i = 0; i < changes->count; i++) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> const OBX_sync_change* change = &changes->list[i];<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> if (change->puts) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> on_puts(arg, change->entity_id, change->puts);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> if (change->removals) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> on_removals(arg, change->entity_id, change->removals);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">};<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">void main() {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ...<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> obx_sync_listener_login(sync_client, change_listener, &change_listener_arg);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-9" aria-labelledby="tab-go-9" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ue4d9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">syncClient.SetChangeListener(func(changes []*objectbox.SyncChange) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> fmt.Printf("received %d changes\n", len(changes))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> for i, change := range changes {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> fmt.Printf("change %d: %v\n", i, change)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> // change.EntityId is a "model-entity-id", e.g. we can choose to process<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // only changes on Entity `User`, with the generated `UserBinding`:<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> if change.EntityId == model.UserBinding.Id {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> fmt.Printf("put user IDs %v\n", change.Puts)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> fmt.Printf("deleted user IDs %v\n", change.Removals)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> })</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="listeners-concurrency" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#listeners-concurrency" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Listeners concurrency</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">Some events may be issued in parallel, from multiple background threads. To help you understand when and how you need to take care of concurrency (e.g. use mutex/atomic variables), we've grouped the sync listeners to these two groups:</p><!--/$--><!--$--><ul class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="/sync-client#listening-to-events">State listeners</a> - listening to login success/failure, connection status, sync complete.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><a class="underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors" href="/sync-client#listening-to-sync-updates">Data change listener</a> - listening to incoming data changes.</p><!--/$--></div></li><!--/$--></ul><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">There can be only one event executed at any single moment from a listener in a single group. You can imagine this as if there were two parallel threads, one could only issue "state" events, the other only "data change" events.</p><!--/$--><!--$--><h3 id="controlling-sync-updates-behavior" class="text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#controlling-sync-updates-behavior" aria-label="Direct link to heading" class="inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Controlling sync updates behavior</div></h3><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">By default, after the Sync client is logged in, its database is updated from the server and the client will automatically subscribe for any future changes. For advanced use cases, like unit testing, it is possible to control when the client receives data updates from the server.</p><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">To change the default behavior, configure the "Request Updates Mode" before starting the client connection. Three modes are available:</p><!--/$--><!--$--><ul class="space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><strong class="font-bold">automatic</strong> (default): receives updates on login and subscribes for future updates.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><strong class="font-bold">automatic, but no pushes:</strong> receives updates on login but doesn't subscribe for future updates.</p><!--/$--></div></li><!--/$--><!--$--><li class="leading-normal flex items-start"><div class="text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="space-y-2 flex flex-col flex-1"><!--$--><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0"><strong class="font-bold">manual:</strong> no automatic updates on login or on any updates in the future.</p><!--/$--></div></li><!--/$--></ul><!--/$--><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0">When using one of the non-default modes, synchronization can be controlled after login during application runtime by requesting and cancelling updates using the client:</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="java-10" id="tab-java-10" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">Java</button><button role="tab" aria-selected="false" aria-controls="kotlin-10" id="tab-kotlin-10" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Kotlin</button><button role="tab" aria-selected="false" aria-controls="swift-10" id="tab-swift-10" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Swift</button><button role="tab" aria-selected="false" aria-controls="dart-flutter-10" id="tab-dart-flutter-10" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Dart/Flutter</button><button role="tab" aria-selected="false" aria-controls="c-16" id="tab-c-16" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C++</button><button role="tab" aria-selected="false" aria-controls="c-17" id="tab-c-17" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">C</button><button role="tab" aria-selected="false" aria-controls="go-10" id="tab-go-10" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Go</button></div><div role="tabpanel" id="java-10" aria-labelledby="tab-java-10" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R16gkd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">SyncClient syncClient = syncBuilder<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Turn off automatic sync updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .requestUpdatesMode(RequestUpdatesMode.MANUAL)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .build();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Wait for login attempt, proceed if logged in.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.awaitFirstLogin(20 * 1000 /* ms */);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">if (syncClient.isLoggedIn()) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Turn on automatic sync updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient.requestUpdates();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Turn off automatic sync updates, cancel ongoing sync.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient.cancelUpdates();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Request one-time update.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Will update client with latest data.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient.requestUpdatesOnce();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="kotlin-10" aria-labelledby="tab-kotlin-10" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1agkd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">val syncClient = syncBuilder<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Turn off automatic sync updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .requestUpdatesMode(RequestUpdatesMode.MANUAL)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> .build()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Wait for login attempt, proceed if logged in.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.awaitFirstLogin(20 * 1000 /* ms */)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">if (syncClient.isLoggedIn()) {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Turn on automatic sync updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient.requestUpdates()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Turn off automatic sync updates, cancel ongoing sync.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient.cancelUpdates()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> <!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Request one-time update.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> // Will update client with latest data.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> syncClient.requestUpdatesOnce()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="swift-10" aria-labelledby="tab-swift-10" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><p class="w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><i class="font-italic">Coming soon!</i></p><!--/$--></div></div><div role="tabpanel" id="dart-flutter-10" aria-labelledby="tab-dart-flutter-10" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1igkd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">final client = Sync.client(...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">client.setRequestUpdatesMode(SyncRequestUpdatesMode.manual);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">client.start(); // Connect but don't synchronize yet.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Turn on sync updates and subscribe for pushes.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">client.requestUpdates(subscribeForFuturePushes: true);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Cancel ongoing synchronization & unsubscribe from future updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">client.cancelUpdates();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Alternatively, catch up with the server but don't subscribe for future.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// You can call this instead of subscribing to do one-time updates as needed.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">client.requestUpdates(subscribeForFuturePushes: false);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-16" aria-labelledby="tab-c-16" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1mgkd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">std::shared_ptr<obx::SyncClient> syncClient = obx::Sync::client(store, ...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->setRequestUpdatesMode(OBXRequestUpdatesMode_MANUAL);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->start(); // Connect but don't synchronize yet.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Turn on sync updates and subscribe for pushes.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->requestUpdates(true);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Cancel ongoing synchronization & unsubscribe from future updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->cancelUpdates();<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Alternatively, catch up with the server but don't subscribe for future.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// You can call this instead of subscribing to do one-time updates as needed.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->requestUpdates(false);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="c-17" aria-labelledby="tab-c-17" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1qgkd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">OBX_sync* sync_client = obx_sync(store, ...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_credentials(sync_client, ...);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_request_updates_mode(sync_client, OBXRequestUpdatesMode_MANUAL);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_start(sync_client); // Connect but don't synchronize yet.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Turn on sync updates and subscribe for pushes.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_updates_request(sync_client, true);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Cancel ongoing synchronization & unsubscribe from future updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_updates_cancel(sync_client);<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Alternatively, catch up with the server but don't subscribe for future.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// You can call this instead of subscribing to do one-time updates as needed.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">obx_sync_updates_request(sync_client, false);</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="go-10" aria-labelledby="tab-go-10" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start [grid-area:1/1] text-sm gap-2"></div><button class="group-hover/codeblock:opacity-[1] transition-opacity duration-75 opacity-0 text-xs [grid-area:2/1] z-[2] justify-self-end backdrop-blur-md leading-none self-start ring-1 ring-tint text-tint bg-transparent rounded-md mr-2 mt-2 p-1 hover:ring-tint-hover print:hidden">Copy</button><pre class="[grid-area:2/1] relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle hide-scroll rounded-md straight-corners:rounded-sm"><code id=":R1ugkd9uu8qfkvfa:" class="min-w-full inline-grid grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">syncClient, err := objectbox.NewSyncClient(...)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.SetRequestUpdatesMode(objectbox.SyncRequestUpdatesManual)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.Start() // Connect but don't synchronize yet.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Turn on sync updates and subscribe for pushes.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.RequestUpdates(true)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Cancel ongoing synchronization & unsubscribe from future updates.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient.CancelUpdates()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">// Alternatively, catch up with the server but don't subscribe for future.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">// You can call this instead of subscribing to do one-time updates as needed.<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">syncClient->requestUpdates(false)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--></div><!--/$--><div class="flex flex-col md:flex-row mt-6 gap-2 max-w-3xl mx-auto page-api-block:ml-0 text-tint"><a class="group text-sm p-2.5 flex gap-4 flex-1 flex-row-reverse items-center pl-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base" href="/"><span class="flex flex-col flex-1 text-right"><span class="text-xs">Previous</span><span class="text-tint-strong group-hover:text-primary line-clamp-2">Data Synchronization</span></span><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-left.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block"></svg></a><a class="group text-sm p-2.5 flex gap-4 flex-1 flex-row items-center pr-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base" href="/objectbox-sync-server"><span class="flex flex-col flex-1"><span class="text-xs">Next</span><span class="text-tint-strong group-hover:text-primary line-clamp-2">ObjectBox Sync Server</span></span><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-right.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block"></svg></a></div><div class="flex flex-row flex-wrap gap-4 items-center mt-6 max-w-3xl mx-auto page-api-block:ml-0 text-tint contrast-more:text-tint-strong"><p class="text-sm mr-auto">Last updated <time data-visual-test="transparent" dateTime="2025-02-11T07:07:33.598Z" title="2/11/2025, 7:07:33 AM">6 days ago</time></p><div class="flex flex-col gap-3 text-sm xl:hidden"><div class="flex flex-wrap items-center gap-2"><p>Was this helpful?</p><div class="bg-tint-base border border-tint-subtle contrast-more:border-tint-12 rounded-full"><div class="flex"><button class="p-2 hover:bg-primary-hover hover:text-primary-strong first:pl-2.5 last:pr-2.5 first:rounded-l-full last:rounded-r-full disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit contrast-more:hover:ring-1 ring-tint disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="No" title="No"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 13.3737C4.87421 13.5572 5.19025 13.5386 5.3737 13.3322C7.30371 11.1609 10.6963 11.1609 12.6263 13.3322C12.8098 13.5386 13.1258 13.5572 13.3322 13.3737C13.5386 13.1902 13.5572 12.8742 13.3737 12.6678C11.0459 10.049 6.9541 10.049 4.6263 12.6678C4.44284 12.8742 4.46143 13.1902 4.66782 13.3737ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 hover:bg-primary-hover hover:text-primary-strong first:pl-2.5 last:pr-2.5 first:rounded-l-full last:rounded-r-full disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit contrast-more:hover:ring-1 ring-tint disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Not sure" title="Not sure"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.5 12C4.5 11.7239 4.72386 11.5 5 11.5H13C13.2761 11.5 13.5 11.7239 13.5 12C13.5 12.2761 13.2761 12.5 13 12.5H5C4.72386 12.5 4.5 12.2761 4.5 12ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 hover:bg-primary-hover hover:text-primary-strong first:pl-2.5 last:pr-2.5 first:rounded-l-full last:rounded-r-full disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit contrast-more:hover:ring-1 ring-tint disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Yes, it was!" title="Yes, it was!"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 11.6263C4.87421 11.4428 5.19025 11.4614 5.3737 11.6678C7.30371 13.8391 10.6963 13.8391 12.6263 11.6678C12.8098 11.4614 13.1258 11.4428 13.3322 11.6263C13.5386 11.8098 13.5572 12.1258 13.3737 12.3322C11.0459 14.951 6.9541 14.951 4.6263 12.3322C4.44284 12.1258 4.46143 11.8098 4.66782 11.6263ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button></div></div></div></div></div></main></div><!--$--><!--/$--><!--/$--></div></div><!--$--><!--/$--><!--$--><!--/$--><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi" data-cfasync="false"> document.addEventListener("DOMContentLoaded", () => { if (Array.from(document.scripts).find(script => script.src.includes('rocket-loader.min.js'))) { const alert = document.createElement('div'); alert.className = 'p-4 mb-4 text-sm text-red-800 rounded-lg bg-red-50 mt-8 mx-8'; alert.innerHTML = ` <strong>Error in site configuration:</strong> It looks like ${window.location.hostname} has been incorrectly configured in Cloudflare. This may lead to unexpected behavior or issues with the page loading. If you are the owner of this site, please refer to <a href="https://docs.gitbook.com/published-documentation/custom-domain/configure-dns#are-you-using-cloudflare" class="underline">GitBook's documentation</a> for steps to fix the problem. `; document.body.prepend(alert); } });</script><script src="https://static.gitbook.com/_next/static/chunks/webpack-ff813e9d416ce230.js" nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi" async=""></script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"1:HC[\"https://static.gitbook.com\",\"\"]\n2:HL[\"https://static.gitbook.com/_next/static/css/9f5478b23a2dbc0b.css\",\"style\"]\n3:HL[\"https://static.gitbook.com/_next/static/css/c689b5a6a1432db7.css\",\"style\"]\n4:HL[\"https://static.gitbook.com/_next/static/css/619939f8b811f942.css\",\"style\"]\n5:HL[\"https://static.gitbook.com/_next/static/css/95b358fb5c9305a3.css\",\"style\"]\n6:HL[\"https://static.gitbook.com/_next/static/css/09a5087aafb66ce5.css\",\"style\"]\n7:HL[\"https://static.gitbook.com/_next/static/css/faa0908d2237c5e3.css\",\"style\"]\n8:HL[\"https://static.gitbook.com/_next/static/css/9008e36b498d813c.css\",\"style\"]\n9:HL[\"https://static.gitbook.com/_next/static/css/2567c890e467e55b.css\",\"style\"]\na:HL[\"https://static.gitbook.com/_next/static/css/79eda1c72751119a.css\",\"style\"]\nb:HL[\"https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css\",\"style\"]\nc:I[11815,[],\"default\"]\nf:I[55092,[],\"default\"]\n11:I[82023,[],\"default\"]\n16:I[44622,[\"6470\",\"static/chunks/app/global-error-185b8d6d9c549d21.js\"],\"default\"]\n10:[\"pathname\",\"sync-client\",\"oc\"]\n17:[]\n0:[\"$\",\"$Lc\",null,{\"buildId\":\"EYxQFEz1Nbr1dJ4nh6_5U\",\"assetPrefix\":\"https://static.gitbook.com\",\"urlParts\":[\"\",\"sync-client\"],\"initialTree\":[\"\",{\"children\":[\"middleware\",{\"children\":[\"(site)\",{\"children\":[\"(content)\",{\"children\":[[\"pathname\",\"sync-client\",\"oc\"],{\"children\":[\"__PAGE__?{\\\"pathname\\\":[\\\"sync-client\\\"]}\",{}]}]}]},\"$undefined\",\"$undefined\",true]}]}],\"initialSeedData\":[\"\",{\"children\":[\"middleware\",{\"children\":[\"(site)\",{\"children\":[\"(content)\",{\"children\":[[\"pathname\",\"sync-client\",\"oc\"],{\"children\":[\"__PAGE__\",{},[[\"$Ld\",\"$Le\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/faa0908d2237c5e3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/9008e36b498d813c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/2567c890e467e55b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/79eda1c72751119a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\",\"(site)\",\"children\",\"(content)\",\"children\",\"$10\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$L12\",\"notFoundStyles\":[]}]],[[\"$\",\"div\",null,{\"className\":\"flex flex-row flex-1 relative py-8 lg:px-16 xl:mr-56 items-center lg:items-start\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex-1 max-w-3xl mx-auto page-full-width:mx-0\",\"children\":[[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mb-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mb-4\",\"children\":[\"$\",\"div\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}]]}]}],[],[]]]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/09a5087aafb66ce5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],\"$L13\"],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/9f5478b23a2dbc0b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/c689b5a6a1432db7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/619939f8b811f942.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/95b358fb5c9305a3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],\"$L14\"],null],null]},[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L15\"],\"globalErrorComponent\":\"$16\",\"missingSlots\":\"$W17\"}]\n19:I[5145,[\"9322\",\"static/chunks/9322-5f5740cd5fd0bdf9.js\",\"4183\",\"static/chunks/app/middleware/(site)/layout-1a4e0bf6da1d58a4.js\"],\"IconsProvider\"]\n1a:I[75489,[\"9322\",\"static/chunks/9322-5f5740cd5fd0bdf9.js\",\"4183\",\"static/chunks/app/middleware/(site)/layout-1a4e0bf6da1d58a4.js\"],\"ClientContexts\"]\n1b:I[61946,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"8626\",\"static/chunks/app/middleware/(site)/error-65349dd045e81a2f.js\"],\"default\"]\n18:T13a2,\n :root {\n --primary-1: 251 255 255; --contrast-primary-1: 29 29 29;\n--primary-2: 242 251 255; --contrast-primary-2: 29 29 29;\n--primary-3: 236 248 255; --contrast-primary-3: 29 29 29;\n--primary-4: 227 244 255; --contrast-primary-4: 29 29 29;\n--primary-5: 218 239 25"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"5; --contrast-primary-5: 29 29 29;\n--primary-6: 207 231 255; --contrast-primary-6: 29 29 29;\n--primary-7: 190 219 255; --contrast-primary-7: 29 29 29;\n--primary-8: 174 206 255; --contrast-primary-8: 29 29 29;\n--primary-9: 56 132 255; --contrast-primary-9: 255 255 255;\n--primary-10: 38 114 236; --contrast-primary-10: 255 255 255;\n--primary-11: 23 102 222; --contrast-primary-11: 255 255 255;\n--primary-12: 0 0 119; --contrast-primary-12: 255 255 255;\n--primary-original: 56 132 255; --contrast-primary-original: 255 255 255;\n --tint-1: 254 255 255; --contrast-tint-1: 29 29 29;\n--tint-2: 248 250 253; --contrast-tint-2: 29 29 29;\n--tint-3: 245 248 252; --contrast-tint-3: 29 29 29;\n--tint-4: 239 242 248; --contrast-tint-4: 29 29 29;\n--tint-5: 233 237 244; --contrast-tint-5: 29 29 29;\n--tint-6: 225 230 238; --contrast-tint-6: 29 29 29;\n--tint-7: 212 217 226; --contrast-tint-7: 29 29 29;\n--tint-8: 199 205 215; --contrast-tint-8: 29 29 29;\n--tint-9: 119 134 157; --contrast-tint-9: 255 255 255;\n--tint-10: 108 122 145; --contrast-tint-10: 255 255 255;\n--tint-11: 97 111 134; --contrast-tint-11: 255 255 255;\n--tint-12: 18 29 48; --contrast-tint-12: 255 255 255;\n--tint-original: 120 120 120; --contrast-tint-original: 255 255 255;\n --neutral-1: 255 255 255; --contrast-neutral-1: 29 29 29;\n--neutral-2: 250 250 250; --contrast-neutral-2: 29 29 29;\n--neutral-3: 247 247 247; --contrast-neutral-3: 29 29 29;\n--neutral-4: 242 242 242; --contrast-neutral-4: 29 29 29;\n--neutral-5: 237 237 237; --contrast-neutral-5: 29 29 29;\n--neutral-6: 229 229 229; --contrast-neutral-6: 29 29 29;\n--neutral-7: 217 217 217; --contrast-neutral-7: 29 29 29;\n--neutral-8: 204 204 204; --contrast-neutral-8: 29 29 29;\n--neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255;\n--neutral-10: 121 121 121; --contrast-neutral-10: 255 255 255;\n--neutral-11: 110 110 110; --contrast-neutral-11: 255 255 255;\n--neutral-12: 29 29 29; --contrast-neutral-12: 255 255 255;\n--neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255;\n\n --header-background: 56 132 255;\n --header-link: 255 255 255;\n }\n\n .dark {\n --primary-1: 26 29 34; --contrast-primary-1: 255 255 255;\n--primary-2: 29 35 44; --contrast-primary-2: 255 255 255;\n--primary-3: 35 44 59; --contrast-primary-3: 255 255 255;\n--primary-4: 36 48 68; --contrast-primary-4: 255 255 255;\n--primary-5: 38 54 79; --contrast-primary-5: 255 255 255;\n--primary-6: 39 58 88; --contrast-primary-6: 255 255 255;\n--primary-7: 45 68 104; --contrast-primary-7: 255 255 255;\n--primary-8: 51 78 121; --contrast-primary-8: 255 255 255;\n--primary-9: 56 132 255; --contrast-primary-9: 255 255 255;\n--primary-10: 63 139 255; --contrast-primary-10: 255 255 255;\n--primary-11: 111 189 255; --contrast-primary-11: 29 29 29;\n--primary-12: 172 255 255; --contrast-primary-12: 29 29 29;\n--primary-original: 56 132 255; --contrast-primary-original: 255 255 255;\n --tint-1: 29 29 29; --contrast-tint-1: 255 255 255;\n--tint-2: 34 35 35; --contrast-tint-2: 255 255 255;\n--tint-3: 43 44 45; --contrast-tint-3: 255 255 255;\n--tint-4: 46 48 50; --contrast-tint-4: 255 255 255;\n--tint-5: 52 54 56; --contrast-tint-5: 255 255 255;\n--tint-6: 56 58 61; --contrast-tint-6: 255 255 255;\n--tint-7: 65 68 71; --contrast-tint-7: 255 255 255;\n--tint-8: 75 78 82; --contrast-tint-8: 255 255 255;\n--tint-9: 126 133 145; --contrast-tint-9: 255 255 255;\n--tint-10: 137 145 157; --contrast-tint-10: 255 255 255;\n--tint-11: 185 193 205; --contrast-tint-11: 29 29 29;\n--tint-12: 247 255 255; --contrast-tint-12: 29 29 29;\n--tint-original: 120 120 120; --contrast-tint-original: 255 255 255;\n --neutral-1: 29 29 29; --contrast-neutral-1: 255 255 255;\n--neutral-2: 34 34 34; --contrast-neutral-2: 255 255 255;\n--neutral-3: 44 44 44; --contrast-neutral-3: 255 255 255;\n--neutral-4: 48 48 48; --contrast-neutral-4: 255 255 255;\n--neutral-5: 53 53 53; --contrast-neutral-5: 255 255 255;\n--neutral-6: 57 57 "])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"57; --contrast-neutral-6: 255 255 255;\n--neutral-7: 67 67 67; --contrast-neutral-7: 255 255 255;\n--neutral-8: 78 78 78; --contrast-neutral-8: 255 255 255;\n--neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255;\n--neutral-10: 144 144 144; --contrast-neutral-10: 255 255 255;\n--neutral-11: 192 192 192; --contrast-neutral-11: 29 29 29;\n--neutral-12: 255 255 255; --contrast-neutral-12: 29 29 29;\n--neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255;\n\n --header-background: 56 132 255;\n --header-link: 255 255 255;\n }\n 14:[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"scroll-pt-[76px] theme-clean no-tint sidebar-default sidebar-list-default\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"privacy-policy\",\"href\":\"https://objectbox.io/wordpress/wp-content/uploads/2022/08/Object-Box-Privacy-Notice.pdf\"}],[\"$\",\"style\",null,{\"nonce\":\"$undefined\",\"children\":\"$18\"}]]}],[\"$\",\"body\",null,{\"className\":\"__className_2f5617 __className_7d852e __variable_96046e bg-tint-base theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint\",\"children\":[\"$\",\"$L19\",null,{\"assetsURL\":\"https://ka-p.fontawesome.com/releases/v6.6.0/\",\"assetsURLToken\":\"a463935e93\",\"assetsByStyles\":{\"custom-icons\":{\"assetsURL\":\"https://static.gitbook.com/~gitbook/static/icons\"}},\"iconStyle\":\"regular\",\"children\":[\"$\",\"$L1a\",null,{\"language\":{\"locale\":\"en\",\"powered_by_gitbook\":\"Powered by GitBook\",\"sponsored_via_gitbook\":\"Sponsored via GitBook\",\"switch_to_dark_theme\":\"Switch to dark theme\",\"switch_to_light_theme\":\"Switch to light theme\",\"switch_to_system_theme\":\"Switch to system theme\",\"search\":\"Search\",\"search_or_ask\":\"Ask or search\",\"search_input_placeholder\":\"Search content\",\"search_ask_input_placeholder\":\"Search content or ask a question\",\"search_no_results\":\"No results for \\\"${1}\\\".\",\"search_scope_space\":\"$${1}\",\"search_scope_all\":\"All content\",\"search_ask\":\"Ask \\\"${1}\\\"\",\"search_ask_description\":\"Find the answer with AI\",\"search_ask_sources\":\"Sources\",\"search_ask_sources_no_answer\":\"Related pages\",\"search_ask_no_answer\":\"An answer could not be found for your question. You could try rephrasing it, or be more specific.\",\"search_ask_error\":\"Something went wrong. Please try again later.\",\"on_this_page\":\"On this page\",\"next_page\":\"Next\",\"previous_page\":\"Previous\",\"page_last_modified\":\"Last updated ${1}\",\"was_this_helpful\":\"Was this helpful?\",\"was_this_helpful_positive\":\"Yes, it was!\",\"was_this_helpful_neutral\":\"Not sure\",\"was_this_helpful_negative\":\"No\",\"was_this_helpful_thank_you\":\"Thank you!\",\"was_this_helpful_comment\":\"Anything you'd like to add?\",\"submit\":\"Submit\",\"annotation_button_label\":\"Open annotation\",\"code_copied\":\"Copied!\",\"code_copy\":\"Copy\",\"table_of_contents_button_label\":\"Open table of contents\",\"cookies_title\":\"Cookies\",\"cookies_prompt\":\"This site uses cookies to deliver its service and to analyse traffic. By browsing this site, you accept the ${1}.\",\"cookies_prompt_privacy\":\"privacy policy\",\"cookies_accept\":\"Accept\",\"cookies_reject\":\"Reject\",\"cookies_close\":\"Close\",\"edit_on_git\":\"Edit on ${1}\",\"notfound_title\":\"Page not found\",\"notfound\":\"The page you are looking for doesn't exist.\",\"unexpected_error_title\":\"An error occurred\",\"unexpected_error\":\"Sorry, an unexpected error has occurred. Please try again later.\",\"unexpected_error_retry\":\"Retry\",\"pdf_download\":\"Export as PDF\",\"pdf_goback\":\"Go back to content\",\"pdf_print\":\"Print or Save as PDF\",\"pdf_page_of\":\"$${1} of ${2}\",\"pdf_mode_only_page\":\"Only this page\",\"pdf_mode_all\":\"All pages\",\"pdf_limit_reached\":\"Couldn't generate the PDF for ${1} pages, generation stopped at ${2}.\",\"pdf_limit_reached_continue\":\"Extend with ${1} more pages.\",\"more\":\"More\"},\"children\":[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\",\"(site)\",\"children\"],\"error\":\"$1b\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"temp"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"lateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]}]}]}]]}]\n1e:I[26700,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"TrackPageViewEvent\"]\n1f:I[35592,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"NuqsAdapter\"]\n20:I[2092,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"ClientContexts\"]\n22:\"$Sreact.suspense\"\n23:I[35489,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"CookiesToast\"]\n1c:HC\"https://api.gitbook.com\"\n1d:HC\"https://static.gitbook.com\"\n12:[\"$\",\"div\",null,{\"className\":\"flex-1 flex flex-row items-center justify-center py-9 min-h-[calc(100vh-64px)] lg:min-h-fit\",\"children\":[[\"$\",\"div\",null,{\"className\":\"max-w-80\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"text-base mb-4\",\"children\":\"The page you are looking for doesn't exist.\"}]]}],[\"$\",\"$L1e\",null,{\"pageId\":null,\"revisionId\":\"YrUPXBqEaPAQlc1mKri5\"}]]}]\n13:[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"$L20\",null,{\"nonce\":\"ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi\",\"forcedTheme\":\"light\",\"children\":[\"$L21\",null,[\"$\",\"$22\",null,{\"fallback\":null,\"children\":[\"$\",\"$L23\",null,{\"privacyPolicy\":\"https://objectbox.io/wordpress/wp-content/uploads/2022/08/Object-Box-Privacy-Notice.pdf\"}]}],[\"$\",\"script\",null,{\"nonce\":\"ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi\",\"suppressHydrationWarning\":true,\"data-cfasync\":\"false\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n document.addEventListener(\\\"DOMContentLoaded\\\", () =\u003e {\\n if (Array.from(document.scripts).find(script =\u003e script.src.includes('rocket-loader.min.js'))) {\\n const alert = document.createElement('div');\\n alert.className = 'p-4 mb-4 text-sm text-red-800 rounded-lg bg-red-50 mt-8 mx-8';\\n alert.innerHTML = `\\n \u003cstrong\u003eError in site configuration:\u003c/strong\u003e\\n It looks like ${window.location.hostname} has been incorrectly configured in Cloudflare. This may lead to unexpected behavior or issues with the page loading. If you are the owner of this site, please refer to \u003ca href=\\\"https://docs.gitbook.com/published-documentation/custom-domain/configure-dns#are-you-using-cloudflare\\\" class=\\\"underline\\\"\u003eGitBook's documentation\u003c/a\u003e for steps to fix the problem.\\n `;\\n\\n document.body.prepend(alert);\\n }\\n });\"}}],\"$L24\"]}]}]\n25:I[31200,[\"2622\",\"static/chunks/2622-d4"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"InsightsProvider\"]\n26:I[19284,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"HeaderMobileMenu\"]\n29:I[86604,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"SearchButton\"]\n2a:I[19656,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"TOCScrollContainer\"]\n39:I[22833,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"Link\"]\n3a:I[22563,[\"9322\",\"static/chunks/9322-5f5740cd5fd0bdf9.js\",\"4183\",\"static/chunks/app/middleware/(site)/layout-1a4e0bf6da1d58a4.js\"],\"Icon\"]\n3b:I[42579,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"SearchModal\"]\n24:null\n21:[\"$\",\"$L25\",null,{\"enabled\":true,\"apiHost\":\"https://api.gitbook.com\",\"visitorAuthToken\":null,\"siteId\":\"site_DjyTW\",\"spaceId\":\"-MG8Rp3u8P9P7cUT3_pP\",\"organizationId\":\"-LETrjVL2EKnHuIjYh8P\",\"siteSectionId\":\"$undefined\",\"siteSpaceId\":\"sitesp_J1ogK\",\"siteShareKey\":\"$undefined\",\"revisionId\":\"$undefined\",\"changeRequestId\":\"$undefined\",\"children\":[[\"$\",\"header\",null,{\"id\":\"site-header\",\"className\":\"flex flex-col h-[64px] sticky top-0 z-10 w-full flex-none shadow-[0px_1px_0px] shadow-tint-12/2 bg-tint-base/9 theme-muted:bg-tint-subtle/9 theme-bold-tint:bg-tint-subtle/9 theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint contrast-more:bg-tint-base text-sm backdrop-blur-lg\",\"children\":[[\"$\",\"div\",null,{\"className\":\"theme-bold:bg-header-background theme-bold:shadow-[0px_1px_0px] theme-bold:shadow-tint-12/2\",\"children\":[\"$\",\"div\",null,{\"className\":\"scroll-nojump\",\"children\":[\"$\",\"div\",null,{\"className\":\"gap-4 lg:gap-8 flex items-center justify-between w-full py-3 min-h-16 sm:h-16 px-4 sm:px-6 md:px-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"8 max-w-screen-2xl mx-auto page-full-width:max-w-full\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex max-w-full shrink min-w-0 gap-2 lg:gap-4 justify-start items-center\",\"children\":[[\"$\",\"$L26\",null,{\"className\":\"lg:hidden -ml-2 text-tint-strong theme-bold:text-header-link hover:bg-tint-hover theme-bold:hover:bg-header-link/3\"}],\"$L27\"]}],false,\"$L28\",[\"$\",\"div\",null,{\"className\":\"flex md:min-w-56 grow-0 shrink-0 justify-self-end\",\"children\":[\"$\",\"$22\",null,{\"fallback\":null,\"children\":[\"$\",\"$L29\",null,{\"style\":[\"theme-bold:bg-header-link/2\",\"theme-bold:hover:bg-header-link/3\",\"theme-bold:text-header-link/8\",\"theme-bold:hover:text-header-link\",\"theme-bold:ring-header-link/4\",\"theme-bold:hover:ring-header-link/5\",\"theme-bold:[\u0026_svg]:text-header-link/10\",\"theme-bold:[\u0026_.shortcut]:text-header-link/8\",\"theme-bold:contrast-more:bg-header-background\",\"theme-bold:contrast-more:text-header-link\",\"theme-bold:contrast-more:ring-header-link\",\"theme-bold:contrast-more:hover:bg-header-background\",\"theme-bold:contrast-more:hover:ring-header-link\",\"theme-bold:contrast-more:focus:text-header-link\",\"theme-bold:contrast-more:focus:bg-header-background\",\"theme-bold:contrast-more:focus:ring-header-link\",\"theme-bold:shadow-none\",\"theme-bold:hover:shadow-none\"],\"children\":[\"$\",\"span\",null,{\"className\":\"flex-1\",\"children\":[\"Search\",\"...\"]}]}]}]}]]}]}]}],null]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col lg:flex-row px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full\",\"children\":[[\"$\",\"aside\",null,{\"data-testid\":\"table-of-contents\",\"className\":\"group page-no-toc:hidden grow-0 shrink-0 basis-full lg:basis-72 relative z-[1] lg:sticky lg:top-0 lg:h-screen site-header:lg:top-16 site-header:lg:h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:h-[calc(100vh_-_6.75rem)] pt-6 pb-4 sidebar-filled:lg:pr-6 hidden navigation-open:flex lg:flex flex-col gap-4 navigation-open:border-b border-tint-subtle\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"lg:-ms-5 overflow-hidden relative flex flex-col flex-grow sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base sidebar-filled:rounded-xl straight-corners:rounded-none\",\"children\":[[\"$\",\"div\",null,{\"className\":\"px-5 *:my-4\",\"children\":[false,false,false]}],[\"$\",\"$L2a\",null,{\"className\":\"flex flex-grow flex-col p-2 lg:pb-20 overflow-y-auto lg:gutter-stable [\u0026::-webkit-scrollbar]:bg-transparent [\u0026::-webkit-scrollbar-thumb]:bg-transparent group-hover:[\u0026::-webkit-scrollbar]:bg-tint-subtle group-hover:[\u0026::-webkit-scrollbar-thumb]:bg-tint-7 group-hover:[\u0026::-webkit-scrollbar-thumb:hover]:bg-tint-8\",\"children\":[[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5 sidebar-list-line:border-l border-tint-subtle\",\"children\":[\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\",[\"$\",\"li\",null,{\"className\":\"flex flex-col group/page-group-item\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 px-3 z-[1] sticky -top-5 pt-6 group-first/page-group-item:-mt-5 pb-3 -mb-1.5 text-xs tracking-wide font-semibold uppercase [mask-image:linear-gradient(rgba(0,0,0,1)_70%,rgba(0,0,0,0))] bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base [html.sidebar-default.theme-gradient_\u0026]:bg-gradient-primary [html.sidebar-default.theme-gradient.tint_\u0026]:bg-gradient-tint\",\"children\":[\"$undefined\",\"ObjectBox Database Developer Docs\"]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5\",\"children\":[\"$L35\",\"$L36\",\"$L37\",\"$L38\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"relative z-[2] lg:absolute mt-6 left-0 right-2 bottom-0 pointer-events-none sidebar-filled:pl-2 sidebar-filled:pb-2 bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base before:hidden lg:before:block before"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":content-[\\\"\\\"] before:absolute before:inset-x-0 before:bottom-full before:h-8 before:bg-gradient-to-b before:from-transparent before:to-tint-base sidebar-filled:before:to-tint-subtle theme-muted:before:to-tint-subtle theme-bold-tint:before:to-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:before:to-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:before:to-tint-base\",\"children\":[\"$\",\"$L39\",null,{\"target\":\"_blank\",\"href\":\"https://www.gitbook.com/?utm_source=content\u0026utm_medium=trademark\u0026utm_campaign=-MG8Rp3u8P9P7cUT3_pP\",\"className\":\"text-sm font-semibold text-tint flex flex-row items-center px-5 py-4 sidebar-filled:px-3 rounded-lg straight-corners:rounded-none hover:bg-tint hover:text-tint-strong ring-2 lg:ring-1 ring-inset ring-tint-subtle transition-colors pointer-events-auto\",\"insights\":{\"type\":\"trademark_click\",\"placement\":\"sidebar\"},\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"gitbook\",\"className\":\"size-5 mr-3\"}],\"Powered by GitBook\"]}]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex-1 flex flex-col\",\"children\":[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\",\"(site)\",\"children\",\"(content)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]}]]}],null,[\"$\",\"$22\",null,{\"fallback\":null,\"children\":[\"$\",\"$L3b\",null,{\"revisionId\":\"YrUPXBqEaPAQlc1mKri5\",\"spaceTitle\":\"ObjectBox Sync\",\"withAsk\":false,\"isMultiVariants\":false,\"pointer\":{\"siteId\":\"site_DjyTW\",\"spaceId\":\"-MG8Rp3u8P9P7cUT3_pP\",\"organizationId\":\"-LETrjVL2EKnHuIjYh8P\",\"siteSectionId\":\"$undefined\",\"siteSpaceId\":\"sitesp_J1ogK\",\"siteShareKey\":\"$undefined\",\"revisionId\":\"$undefined\",\"changeRequestId\":\"$undefined\"}}]}]]}]\n45:I[66185,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"ToggleableLinkItem\"]\n28:[\"$\",\"div\",null,{\"className\":\"headerLinks_containerHeaderlinks__GUgiv grow shrink flex justify-end items-center gap-x-4 lg:gap-x-6 min-w-9 z-20 lg:[\u0026\u003e.button+.button]:-ml-2\",\"children\":[[\"$L3c\",\"$L3d\",\"$L3e\",\"$L3f\"],[\"$\",\"div\",null,{\"className\":\"headerLinks_linkEllipsis__Z01IN items-center z-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"group/dropdown relative flex shrink min-w-0\",\"children\":[[\"$\",\"button\",null,{\"type\":\"button\",\"className\":\"text-tint hover:text-primary dark:hover:text-primary theme-bold:text-header-link theme-bold:hover:text-header-link/8 flex gap-1 items-center\",\"children\":[[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"More\"}],[\"$\",\"$L3a\",null,{\"icon\":\"ellipsis\",\"className\":\"size-4\"}],[\"$\",\"$L3a\",null,{\"icon\":\"chevron-down\",\"className\":\"shrink-0 opacity-6 size-3 ms-1 transition-all group-hover/dropdown:opacity-11 group-focus-within/dropdown:rotate-180\"}]]}],[\"$\",\"div\",null,{\"tabIndex\":-1,\"role\":\"menu\",\"aria-orientation\":\"vertical\",\"aria-labelledby\":\":S1:\",\"className\":\"w-52 max-h-80 flex absolute top-full left-0 z-20 origin-top-left invisible transition-opacity duration-1000 group-hover/dropdown:visible group-focus-within/dropdown:visible -translate-x-48 md:translate-x-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"mt-2 w-full bg-tint-base rounded-lg straight-corners:rounded-sm p-2 shadow-1xs overflow-auto ring-1 ring-tint-subtle focus:outline-none\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-1\",\"children\":[\"$L40\",\"$L41\",\"$L42\",\"$L43\"]}]}]}]]}]}]]}]\n35:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L39\",null,{\"href\":\"https://docs.objectbox.io/\",\"className\":\"flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://docs.objectbox.io/\"},\"position\":\"sidebar\"}},\"children\":[\"$undefined\",\"Java, Kotlin, Flutter/Dart\",[\"$\",\"$L3a\",null,{\"icon\":\"arrow-up-right-from-square\",\"className\":\"size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [\u0026\u003epath]:transition-[opacity] [\u0026\u003epath]:[opacity:0.40] group-hover:[\u0026\u003epath]:[opacity:1]\"}]]}]}]\n36:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L39\",null,{\"href\":\"https://cpp.objectbox.io/\",\"className\":\"flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://cpp.objectbox.io/\"},\"position\":\"sidebar\"}},\"children\":[\"$undefined\",\"C, C++\",[\"$\",\"$L3a\",null,{\"icon\":\"arrow-up-right-from-square\",\"className\":\"size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [\u0026\u003epath]:transition-[opacity] [\u0026\u003epath]:[opacity:0.40] group-hover:[\u0026\u003epath]:[opacity:1]\"}]]}]}]\n37:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L39\",null,{\"href\":\"https://swift.objectbox.io/\",\"className\":\"flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://swift.objectbox.io/\"},\"position\":\"sidebar\"}},\"children\":[\"$undefined\",\"Swift\",[\"$\",\"$L3a\",null,{\"icon\":\"arrow-up-right-from-square\",\"className\":\"size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [\u0026\u003epath]:transition-[opacity] [\u0026\u003epath]:[opacity:0.40] group-hover:[\u0026\u003epath]:[opacity:1]\"}]]}]}]\n38:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L39\",null,{\"href\":\"https://golang.objectbox.io/\",\"className\":\"flex justify-start items-center gap-3 p-1.5 pl-3 text-sm transition-colors duration-100 text-tint-strong/7 rounded-md straight-corners:rounded-none before:content-none font-normal hover:bg-tint hover:text-tint-strong\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://golang.objectbox.io/\"},\"position\":\"sidebar\"}},\"children\":[\"$undefined\",\"Go\",[\"$\",\"$L3a\",null,{\"icon\":\"arrow-up-right-from-square\",\"className\":\"size-3 mr-1 mt-1 place-self-start shrink-0 text-current transition-colors [\u0026\u003epath]:transition-[opacity] [\u0026\u003epath]:[opacity:0.40] group-hover:[\u0026\u003epath]:[opacity:1]\"}]]}]}]\n27:[\"$\",\"$L39\",null,{\"href\":\"/\",\"className\":\"group/headerlogo min-w-0 shrink flex items-center\",\"children\":[\"$L44\",[\"$\",\"div\",null,{\"className\":\"text-pretty line-clamp-3 tracking-tight max-w-[18ch] lg:max-w-[24ch] font-semibold ms-3 text-base/tight lg:text-lg/tight text-tint-strong theme-bold:text-header-link\",\"children\":\"ObjectBox Sync\"}]]}]\n2b:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/\",\"pathname\":\"\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"oWEw0vaHS07lRPzOwMqC\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Data Synchronization\"}]}]\n2c:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/sync-client\",\"pathname\":\"sync-client\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MG8Tvq6Td68Nf1gAbmP\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Sync Client\"}]}]\n2d:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/objectbox-sync-server\",\"pathname\":\"objectbox-sync-server\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MG8vKZ8wRdbXQgyTLmS\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"ObjectBox Sync Server\"}]}]\n2e:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/sync-server-configuration\",\"pathname\":\"sync-server-configuration\",\"insights\":{\"typ"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"e\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"Kk051aRPa2Uaiv73239U\"},\"position\":\"sidebar\"}},\"descendants\":[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5 ml-5 my-2 border-tint-subtle sidebar-list-default:border-l sidebar-list-line:border-l\",\"children\":[\"$L46\"]}],\"children\":\"Sync Server Configuration\"}]}]\n2f:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/data-model-evolution\",\"pathname\":\"data-model-evolution\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MVVrCL7eX_11PZgdTHH\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Data model evolution\"}]}]\n30:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/sync-cluster\",\"pathname\":\"sync-cluster\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"ew3mvDBnX2aN9xoS6IqD\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Sync Cluster\"}]}]\n31:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/mongodb-sync-connector\",\"pathname\":\"mongodb-sync-connector\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"gnWqIYkUfGvdCknXNwcg\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"MongoDB Sync Connector\"}]}]\n32:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/advanced\",\"pathname\":\"advanced\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MTqqz4E1OtPk7GKFDWT\"},\"position\":\"sidebar\"}},\"descendants\":[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5 ml-5 my-2 border-tint-subtle sidebar-list-default:border-l sidebar-list-line:border-l\",\"children\":[\"$L47\",\"$L48\"]}],\"children\":\"Advanced Sync\"}]}]\n33:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/troubleshooting-sync\",\"pathname\":\"troubleshooting-sync\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MIZZhGV1wnkhPne9tWQ\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Troubleshooting Sync\"}]}]\n34:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/graphql-database\",\"pathname\":\"graphql-database\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"gpAk9XO7KsGpNWhO8Fdp\"},\"position\":\"sidebar\"}},\"descendants\":[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5 ml-5 my-2 border-tint-subtle sidebar-list-default:border-l sidebar-list-line:border-l\",\"children\":[\"$L49\",\"$L4a\",\"$L4b\"]}],\"children\":\"GraphQL\"}]}]\n44:[\"$L4c\",\"$L4d\"]\n3c:[\"$\",\"$L39\",null,{\"href\":\"https://objectbox.io/sync\",\"className\":\"flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"url\":\"https://objectbox.io/sync\",\"kind\":\"url\"},\"position\":\"header\"}},\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate min-w-0\",\"children\":\"Sync Home\"}],null]}]\n3d:[\"$\",\"$L39\",null,{\"href\":\"https://objectbox.io/blog/\",\"className\":\"flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"url\":\"https://objectbox.io/blog/\",\"kind\":\"url\"},\"position\":\"header\"}},\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate min-w-0\",\"children\":\"Blog\"}],null]}]\n3e:[\"$\",\"$L39\",null,{\"href\":\"https://twitter.com/ObjectBox_io\",\"className\":\"flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-header-link theme-bold:hover:text-header-link\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"url\":\"https://twitter.com/ObjectBox_io\",\"kind\":\"url\"},\"position\":\"header\"}},\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate min-w-0\",\"children\":\"Twitter\"}],null]}]\n3f:[\"$\",\"$L39\",null,{\"href\":\"https://github.com/objectbox\",\"className\":\"flex items-center shrink min-w-0 contrast-more:underline text-tint hover:text-primary tint:hover:text-tint-strong theme-bold:text-head"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"er-link theme-bold:hover:text-header-link\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"url\":\"https://github.com/objectbox\",\"kind\":\"url\"},\"position\":\"header\"}},\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate min-w-0\",\"children\":\"GitHub\"}],null]}]\n4e:{\"url\":\"https://objectbox.io/sync\",\"kind\":\"url\"}\n40:[false,[\"$\",\"$L39\",null,{\"href\":\"https://objectbox.io/sync\",\"prefetch\":false,\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":\"$4e\",\"position\":\"header\"}},\"className\":\"px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover\",\"children\":\"Sync Home\"}],[]]\n4f:{\"url\":\"https://objectbox.io/blog/\",\"kind\":\"url\"}\n41:[false,[\"$\",\"$L39\",null,{\"href\":\"https://objectbox.io/blog/\",\"prefetch\":false,\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":\"$4f\",\"position\":\"header\"}},\"className\":\"px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover\",\"children\":\"Blog\"}],[]]\n50:{\"url\":\"https://twitter.com/ObjectBox_io\",\"kind\":\"url\"}\n42:[false,[\"$\",\"$L39\",null,{\"href\":\"https://twitter.com/ObjectBox_io\",\"prefetch\":false,\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":\"$50\",\"position\":\"header\"}},\"className\":\"px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover\",\"children\":\"Twitter\"}],[]]\n51:{\"url\":\"https://github.com/objectbox\",\"kind\":\"url\"}\n43:[false,[\"$\",\"$L39\",null,{\"href\":\"https://github.com/objectbox\",\"prefetch\":false,\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":\"$51\",\"position\":\"header\"}},\"className\":\"px-3 py-1 text-sm rounded straight-corners:rounded-sm hover:bg-tint-hover\",\"children\":\"GitHub\"}],[]]\n46:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/sync-server-configuration/jwt-authentication\",\"pathname\":\"sync-server-configuration/jwt-authentication\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"eTe0eIONrN2NazDhiYmM\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"JWT Authentication\"}]}]\n47:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/advanced/object-ids\",\"pathname\":\"advanced/object-ids\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MTqrGPxr0SVn6xiF5zZ\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Object IDs and Sync\"}]}]\n48:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/advanced/embedded-sync-server\",\"pathname\":\"advanced/embedded-sync-server\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MG8UaEMXrf-IJQo63ms\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Embedded Sync Server\"}]}]\n49:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/graphql-database/graphql-queries\",\"pathname\":\"graphql-database/graphql-queries\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"odH1sqtRs8Fr0po1vZf0\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"GraphQL Queries\"}]}]\n4a:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/graphql-database/graphql-mutations\",\"pathname\":\"graphql-database/graphql-mutations\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"2OmXbxuw1jbnI6dcTgPO\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"GraphQL Mutations\"}]}]\n4b:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L45\",null,{\"href\":\"/graphql-database/graphql-python-client\",\"pathname\":\"graphql-database/graphql-python-client\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"eojsZRL7PY32lbDH4zHL\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"GraphQL Python Client\"}]}]\n52:T58f,https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=1\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 32w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=2\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 64w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=3\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 96w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 128w4c:[\"$\",\"img\",null,{\"alt\":\"\",\"style\":{\"aspectRatio\":\"1\"},\"loading\":\"$undefined\",\"fetchPriority\":\"high\",\"data-visual-test\":\"$undefined\",\"className\":\"block dark:hidden object-contain size-8\",\"src\":\"https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2\",\"srcSet\":\"$52\",\"sizes\":\"32px\",\"width\":300,\"height\":300}]\n53:T58f,https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=1\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 32w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=2\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 64w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=3\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 96w, https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2 128w4d:[\"$\",\"img\",null,{\"alt\":\"\",\"style\":{\"aspectRatio\":\"1\"},\"loading\":\"lazy\",\"fetchPriority\":\"high\",\"data-visual-test\":\"$undefined\",\"className\":\"hidden dark:block object-contain size-8\",\"src\":\"https://sync.objectbox.io/~gitbook/image?url=https%3A%2F%2F2882845212-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MG8Rp3u8P9P7cUT3_pP%252Ficon%252FB3y4dFQB6c8O3h5fzSAs%252FProfile-picture-linkedIn.jpg%3Falt%3Dmedia%26token%3D6c4f9693-6da0-484b-b330-5357c112bf6b\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=f43fdb2d\u0026sv=2\",\"srcSet\":\"$53\",\"sizes\":\"32px\",\"width\":300,\"height\":300}]\n55:I[46451,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"PreservePageLayout\"]\n57:\"$Sreact.fragment\"\n5c:I[18742,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"DynamicTabs\"]\n5e:I[58982,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"ClientCodeBlock\"]\n6c:I[66819,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"3625\",\"static/chunks/3625-453944d6ea4368cb.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-1043f1693da1ab25.js\"],\"DateRelative\"]\n6d:I[75632,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"PageFeedbackForm\"]\n6e:I[16643,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"PageClientLayout\"]\n62:[\"page-api-block:ml-0\"]\ne:[null,[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse justify-end grow\",\"children\":[\"$L54\",[[\"$\",\"main\",null,{\"className\":\"flex-1 relative py-8 lg:px-12 break-anywhere page-api-block:xl:max-2xl:pr-0 page-api-block:max-w-[1654px] page-api-block:mx-auto\",\"children\":[[\"$\",\"$L55\",null,{\"asFullWidth\":false}],null,\"$L56\",[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4\",\"children\":[[\"$\",\"div\",null,{\"id\":\"objectbox-sync-enabled-library\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ri"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ng-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-1\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"enable-your-objects-for-objectbox-sync\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_lin"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-2\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"start-the-sync-client\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-3\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-grad"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"drop-off-send-only-clients\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"secure-connection\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"authentication-options\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"jwt-authentication\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform "])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-4\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"shared-secret\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-5\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"google-sign-in\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"c"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"hildren\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-6\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"no-authentication-insecure\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-7\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"manually-start\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-8\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"listening-to-events\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-9\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"advanced\",\"role\":\"status\",\"aria"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"listening-to-incoming-data-changes\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-10\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transp"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"arent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"listeners-concurrency\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"controlling-sync-updates-behavior\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ri"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ng-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:coni"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"c-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-11\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}]]}],\"children\":[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*+*]:mt-5 grid whitespace-pre-wrap\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"objectbox-sync-enabled-library\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#objectbox-sync-enabled-library\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"ObjectBox Sync enabled library\"}]]]}]]}],[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"The standard ObjectBox (database) library does not include an ObjectBox Sync implementation. Depending on the programming language, it will include the Sync \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"API\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\", but not the \"}],[\"$\",\"$57\",\"3\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"implementation\"}]}],[\"$\",\"$57\",\"4\",{\"children\":\". For example, ObjectBox Java in its standard version allows compiling using the Sync API, but won't provide any Sync logic due to the missing implementation.\"}]]]}],[\"$\",\"div\",null,{\"className\":\"hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [\u0026_.can-override-bg]:bg-tint-active [\u0026_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-row\",\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"circle-info\",\"className\":\"size-5 mr-4 mt-0.5 leading-normal text-primary\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-4 [\u0026_.hint]:border [\u0026_pre]:border\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"If you haven't used ObjectBox before, please also be aware of documentation for the standard (non-sync) edition of ObjectBox (the ObjectBox DB) for your programming language (\"}]],\"$L58\",[[\"$\",\"$57\",\"0\",{\"children\":\", \"}]],\"$L59\",[[\"$\",\"$57\",\"0\",{\"children\":\", \"}]],\"$L5a\",[[\"$\",\"$57\",\"0\",{\"children\":\", \"}]],\"$L5b\",[[\"$\",\"$57\",\"0\",{\"children\":\"). You are currently looking at the documentation specific to ObjectBox Sync, whic"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"h does not cover ObjectBox basics.\"}]]]}]]}]]}]}],[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"By now, you were likely in touch with the ObjectBox team and have access to Sync Server and potentially a special Sync Client version. For some platforms, we maintain packages that you can include as dependencies.\"}]]]}],[\"$\",\"$L5c\",null,{\"id\":\"1811a2b9a39843ab98a037f3b78c9be2\",\"tabs\":[{\"id\":\"java-kotlin-jvm-android\",\"title\":\"Java/Kotlin (JVM, Android)\"},{\"id\":\"swift\",\"title\":\"Swift\"},{\"id\":\"dart-flutter\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-c\",\"title\":\"C/C++\"},{\"id\":\"go\",\"title\":\"Go\"},{\"id\":\"others\",\"title\":\"Others\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Follow the \"}]],\"$L5d\",[[\"$\",\"$57\",\"0\",{\"children\":\" page instructions. Then change the applied Gradle plugin to the sync variant:\"}]]]}],[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"groovy\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// This will try to add the native dependency automatically:\",\"marks\":[]}],\"key\":\"c8aa3d2ff9c24baaa3006b797f983224\"}],\"key\":\"29f662f031ab481db58a408a5445bb53\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"apply plugin: \\\"io.objectbox.sync\\\" // instead of \\\"io.objectbox\\\"\",\"marks\":[]}],\"key\":\"83efb1286d894ba1959642197713d0de\"}],\"key\":\"f591329b4a49414f9e8b45ee03dd8ccc\"}],\"key\":\"b7fb31b4c86b441490d777beee5821b2\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}],[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"This will automatically add the Sync variant of the required JNI library for your platform.\"}]]]}],[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"If needed, e.g. to publish a JVM app that supports multiple platforms or to add Linux ARM support, add the libraries manually:\"}]]]}],[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"groovy\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{\"highlighted\":true},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Android\",\"marks\":[]}],\"key\":\"afea2086172949feb9edb2e9e0bfc622\"}],\"key\":\"d2e0dd4a54cc4b63964130397cb396e5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{\"highlighted\":true},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"implementation(\\\"io.objectbox:objectbox-sync-android:$objectboxVersion\\\")\",\"marks\":[]}],\"key\":\"0df85d8994754d058a446abeb6bd5caa\"}],\"key\":\"517091bcb2cc4f4fb06206a5964051b2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"1f7f46935ed64ed4bd433116113e9db1\"}],\"key\":\"63a8291b6a6c42f4a07b061771e06d31\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{\"highlighted\":true},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// JVM\",\"marks\":[]}],\"key\":\"a833f477cc9940379822a808832e1235\"}],\"key\":\"0e9c3c3eeddd4b219c09037b6ab1ead9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"implementation(\\\"io.objectbox:objectbox-sync-linux:$objectboxVersion\\\")\",\"marks\":[]}],\"key\":\"dc0946d01c894aefab07907f552af54f\"}],\"key\":\"c87957fb79894834b4981025cedfda0a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"implementation(\\\"io.objectbox:objectbox-sync-macos:$objectboxVersion\\\")\",\"marks\":[]}],\"key\":\"c34b25fd5f8449038a10f61a8b8befc3\"}],\"key\":\"1821706f636c49879c0e3b3842c"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"fc214\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"implementation(\\\"io.objectbox:objectbox-sync-windows:$objectboxVersion\\\")\",\"marks\":[]}],\"key\":\"85197368512546cfa644e6c1fed2f167\"}],\"key\":\"3840c182b75a4e47ab4cddefb1447711\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// JVM Linux on ARM (not added automatically)\",\"marks\":[]}],\"key\":\"a5c6438225064fa5bf2c554e9c8f7573\"}],\"key\":\"f929ee4327b44113a65a9956dd425322\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"implementation(\\\"io.objectbox:objectbox-sync-linux-arm64:$objectboxVersion\\\") \",\"marks\":[]}],\"key\":\"c6f0477caccc4015990a3272f2fa9de5\"}],\"key\":\"c5176a4943f74064bfaeb589a797f5f4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"implementation(\\\"io.objectbox:objectbox-sync-linux-armv7:$objectboxVersion\\\")\",\"marks\":[]}],\"key\":\"86c3df02d43b480abf0e91d52cc360b1\"}],\"key\":\"cfbdbd6e69f64384926f56980080e1f0\"}],\"key\":\"c2e88254cec44b2f96f1b7a043d992ba\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [\u0026_.can-override-bg]:bg-tint-active [\u0026_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-row\",\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"circle-info\",\"className\":\"size-5 mr-4 mt-0.5 leading-normal text-primary\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-4 [\u0026_.hint]:border [\u0026_pre]:border\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"This gives you specific information about how to get the Sync-enabled version of ObjectBox. Please also check our \"}]],\"$L5f\",[[\"$\",\"$57\",\"0\",{\"children\":\"docs for in-depth information.\"}]]]}]]}]]}]}],[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"We may distribute ObjectBox Sync for Swift in our \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"Cocoapods\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" staging repository (we let you know). In that case, these are some typical lines to put in your Podfile (please check the version, there might be a newer one available):\"}]]]}],[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"target 'MyCoolSyncProject' do\",\"marks\":[]}],\"key\":\"tMtSQTHPHpet\"}],\"key\":\"CXvK5Hh6iPAC\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" use_frameworks!\",\"marks\":[]}],\"key\":\"34262339a1b249459abb27942f07f1ca\"}],\"key\":\"fdbe6bd787e345f2a4f70a85b6ffd455\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" pod 'ObjectBox', '4.0.0-sync'\",\"marks\":[]}],\"key\":\"a22f92e2cfeb4a7db6b6d24e76d73241\"}],\"key\":\"2a77e77a26ac4196b7caf48eda2db3fe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"end\",\"marks\":[]}],\"key\":\"76da98e9e8d3418e8176e148e0c996ec\"}],\"key\":\"d17a7bd123534124b7022712a3ae3f4b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"c9a86ad4efa54095b0ff51bbb8df6f36\"}],\"key\":"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\"27945d56ade8473a9320812071ceac7e\"}],\"key\":\"9778cfb83ef44c729f2d8a2f88c6d251\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"See the \"}]],\"$L60\",[[\"$\",\"$57\",\"0\",{\"children\":\" instructions for Flutter or Dart and note the different instructions for Sync (different Flutter library, increasing Android minSdkVersion, install script parameter).\"}]]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"bash\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"bash \u003c(curl -s https://raw.githubusercontent.com/objectbox/objectbox-c/main/download.sh) --sync\",\"marks\":[]}],\"key\":\"b986a149af644120a590ac8b2b9b521d\"}],\"key\":\"eb19d542547647078709f03a8be69489\"}],\"key\":\"81818db919754eecaab90c03ff83787f\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-headin"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"g-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Or use \"}]],\"$L61\",[[\"$\",\"$57\",\"0\",{\"children\":\" to get ObjectBox headers and library ready to use in your project:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"title\":\"CMakeLists.txt\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"include(FetchContent)\",\"marks\":[]}],\"key\":\"d372499d2e4f4fc3ac17713fd91e1857\"}],\"key\":\"52ffec6880f24c6fbdede0328c6ae310\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"FetchContent_Declare(\",\"marks\":[]}],\"key\":\"9b9a4521f232412ebd04d7f1aa88d550\"}],\"key\":\"a9547015b2ea4bed8916c29e99bcc3d8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" objectbox\",\"marks\":[]}],\"key\":\"a9003f4165264d0d9990795f88c3658e\"}],\"key\":\"fb4f4cf7c1e745fa9eca6397acbc57f0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" GIT_REPOSITORY https://github.com/objectbox/objectbox-c.git\",\"marks\":[]}],\"key\":\"65d0c873c8c4487e963ebc28935937e5\"}],\"key\":\"7b65adcaf8c44b52acc4bf3c73afeae0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" GIT_TAG v0.15.2\",\"marks\":[]}],\"key\":\"04b7324c26264792ae38137bd8845d10\"}],\"key\":\"b72e5af404bb405d9c814a0f99317cb4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"2e307f43ff2b422482aa229332a0e553\"}],\"key\":\"67127ba9f9eb4587865bf0135451f02c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"9855ef1efae34ac598f013716bef2a59\"}],\"key\":\"4d27b591a4924939838d4c0022e89d77\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"FetchContent_MakeAvailable(objectbox)\",\"marks\":[]}],\"key\":\"9fe0d01ef32948b8a4c15a8b50a446ce\"}],\"key\":\"4b1cd663f3ff403f8bbafb560a12e050\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"2c163aeb72754e8ba455d6b9b678599a\"}],\"key\":\"5f6d801ae3174553a73e1a9d772d7096\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"add_executable(myapp main.cpp)\",\"marks\":[]}],\"key\":\"a0b62c8dcc234b39883778963c65c64e\"}],\"key\":\"ea5d94d3258847f2a8d93fe765864390\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"target_link_libraries(myapp objectbox-sync)\",\"marks\":[]}],\"key\":\"2f1e4d7f6c1c469fac60a3c2efbee0bb\"}],\"key\":\"f679b031067d4a1baf31b6a1a0e317cd\"}],\"key\":\"fa22a4de1bb44c1f87ec09bf9fe1bf18\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"bash \u003c(curl -s https://raw.githubusercontent.com/objectbox/objectbox-go/main/install.sh) --sync\",\"marks\":[]}],\"key\":\"59a3ace526064d92a7208e247ed31fa2\"}],\"key\":\"39b534af63114c54b5fd897746853914\"}],\"key\":\"70127c18556d43ff9f5b3812be7bd57b\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Please reach out to the ObjectBox team\"}]]]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",[\"page-api-block:ml-0\"]]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Now it's time to \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"verify\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" the setup using a flag telling if Sync is available; for example, simply log the resu"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"lt:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-1\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"def61fe2a4cf420c808b6d55c161f96e\",\"tabs\":[{\"id\":\"java\",\"title\":\"Java\"},{\"id\":\"kotlin\",\"title\":\"Kotlin\"},{\"id\":\"swift-1\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-1\",\"title\":\"Dart/Flutter\"},{\"id\":\"c\",\"title\":\"C++\"},{\"id\":\"c-1\",\"title\":\"C\"},{\"id\":\"go-1\",\"title\":\"Go\"},{\"id\":\"others-1\",\"title\":\"Others\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"import io.objectbox.sync.Sync;\",\"marks\":[]}],\"key\":\"8d725d411cfc42eab80cd79bb26300f3\"}],\"key\":\"c669b25b1354436ca5cee42cc48f42b1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"4591acb2e97c43b9bd063b150a4c1869\"}],\"key\":\"e512feb2f50d4b1987f7b91b115632bd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"String syncAvailable = Sync.isAvailable() ? \\\"available\\\" : \\\"unavailable\\\";\",\"marks\":[]}],\"key\":\"c23ebb4742f94a7e958a0aa02d39d0df\"}],\"key\":\"46d6ebff796940a6a81d9ea6f906a6d2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"System.out.println(\\\"ObjectBox Sync is \\\" + syncAvailable);\",\"marks\":[]}],\"key\":\"deb9e6caa6804199840609646a5b2685\"}],\"key\":\"1281436120ef4145851be2dd0dba6bb5\"}],\"key\":\"bab81385ad96464bada2faeebdcc8b0b\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid gr"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"id-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"import io.objectbox.sync.Sync\",\"marks\":[]}],\"key\":\"b9f9201e2b3d4a9b9e25656b33d79a5b\"}],\"key\":\"339f9f3499cf48548c092b4a88d8e356\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"204bfb70938d45879bfe1ae17d02b957\"}],\"key\":\"75c0239002294a968569425f42f1e8b5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val syncAvailable = if (Sync.isAvailable()) \\\"available\\\" else \\\"unavailable\\\"\",\"marks\":[]}],\"key\":\"5df1ccfc29cd462fa515edf7676fef3e\"}],\"key\":\"068cde0e789c4405ab23786de2e9480c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Log.d(App.TAG, \\\"ObjectBox Sync is $syncAvailable\\\")\",\"marks\":[]}],\"key\":\"6de238a9f5354ade9ad95746087ed700\"}],\"key\":\"167b48a2d80443e4847c9cdf93e4e94d\"}],\"key\":\"f4d7415f469a465993d92d14e3ef2cb5\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Sync.isAvailable()\",\"marks\":[]}],\"key\":\"7a90e5917ce447b9b16da5a1bbc6b369\"}],\"key\":\"fb8b27c2da8c4d0092762ea924c43dca\"}],\"key\":\"94b1dc8d8d5344c1ac414be30cd5d089\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-trans"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"parent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Sync.isAvailable()\",\"marks\":[]}],\"key\":\"f9e2a56df4374205af9c6b1d1e2685db\"}],\"key\":\"7e84ed09c7944d49a7015e76761decf1\"}],\"key\":\"ca40aba93e4c4085ad42304cb516339d\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx::Sync::isAvailable()\",\"marks\":[]}],\"key\":\"77ed5e2a96c44cab9d4a7473bf5a754e\"}],\"key\":\"12cbff3056bd46058a48d1276e594403\"}],\"key\":\"6d1c91fff8b940bf8cc77e62f10c72e3\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_has_feature(OBXFeature_Sync)\",\"marks\":[]}],\"key\":\"5d99a03452864135859c2cf1ff8820f1\"}],\"key\":\"cbc2e1a5694f42768b46acd90a094839\"}],\"key\":\"46a21948eee9444cb9d305334b035c44\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48re"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"m-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"objectbox.SyncIsAvailable()\",\"marks\":[]}],\"key\":\"e4064c0fd07a4e569f8aa10c29be3ba4\"}],\"key\":\"81b25772ec50477581b65915fff19c70\"}],\"key\":\"b3ef9f4a859b4959a31b3cf4adf9e015\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Depending on the platform something like:\",\"marks\":[]}],\"key\":\"baf96472d4f94c2d9402da1ea9dc99ea\"}],\"key\":\"9b7bd7c65eee421496adc5c49b067ea1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Sync.isAvailable()\",\"marks\":[]}],\"key\":\"4b90199253be4e04a9684acfbaa92150\"}],\"key\":\"8c34278a7ea34405ba38615e9685703d\"}],\"key\":\"cc479d56547b492cbf9b3f5e0f8384ed\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"enable-your-objects-for-objectbox-sync\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h2\",null,{\"id\":\"enable-your-objects-for-objectbox-sync\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-p"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"rimary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#enable-your-objects-for-objectbox-sync\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Enable your Objects for ObjectBox Sync\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"ObjectBox Sync allows you to define which objects are synced and which are not. This is done at an object type level (a \\\"class\\\" in many programming languages). By default, an object (type) is local only: objects are kept in the database on the local device and do not get synced to other devices.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"To enable sync for an object type, you add a \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"\\\"sync\\\" annotation\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" to the type definition. This is typically the entity source file, or, if you are using ObjectBox Generator, the FlatBuffers schema file:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-2\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"3107560c66844b9ebe94fcb428809564\",\"tabs\":[{\"id\":\"java-1\",\"title\":\"Java\"},{\"id\":\"kotlin-1\",\"title\":\"Kotlin\"},{\"id\":\"swift-2\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-2\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-c-using-generator\",\"title\":\"C/C++ (using Generator)\"},{\"id\":\"go-2\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"@Sync\",\"marks\":[]}],\"key\":\"6da529bf7b6c458ca716c3b17f7b40ea\"}],\"key\":\"055b11d73abd49ffb338497600269ca8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"@Entity\",\"marks\":[]}],\"key\":\"87a29eea8e4d46f6992dec1f8f44aa9f\"}],\"key\":\"6f7d64d98de948788e5f44fc2406c606\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"public class User {\",\"marks\":[]}],\"key\":\"508649584e58450c814c974c38df7b50\"}],\"key\":\"6b59d4a99e004a3392fc6abab270b523\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // ...\",\"marks\":[]}],\"key\":\"22ee7541bfb54958b2e8882ba0c3add5\"}],\"key\":\"78c10fc301e94435ba0ac9d034bc38dc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"9702b66b4ec54c5e86cfdeee98782963\"}],\"key\":\"b2fea97039ee45fcb759cae70d20ed83\"}],\"key\":\"8171275ae64d4afc88074875ee6756db\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gr"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"adient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"@Sync\",\"marks\":[]}],\"key\":\"41873eee99694fecabc5e776f31b2042\"}],\"key\":\"d5bf58b19a62408d8a9bf28d02c13013\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"@Entity\",\"marks\":[]}],\"key\":\"71ed0ceb5eac4f998dcd32eaf4588b48\"}],\"key\":\"aa00bbb4900a481b82c6e86c8e2b9c3d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"data class User(\",\"marks\":[]}],\"key\":\"d26229eb71514166ba84bb030a0f6467\"}],\"key\":\"c829ba216af944a09d19bb3a12464ddf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // ...\",\"marks\":[]}],\"key\":\"4b5fb73502c44719bafc3ca1b2ab6647\"}],\"key\":\"0d4b940749094f67ac0201f1c93d5fd9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"4a2edc4ffc8f45aeb0b1c454c000414f\"}],\"key\":\"da4f633afef94d72b2905242723e0219\"}],\"key\":\"daf84694759f42b0bdc1728187e64236\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"swift\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// objectbox: sync\",\"marks\":[]}],\"key\":\"c686d00b37da4e46bc7c513f2ad6bc5f\"}],\"key\":\"41b7de2c345743c1b9daff179060fcce\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"class User: Entity {\",\"marks\":[]}],\"key\":\"62e82f928fb449f38fe59920911513d3\"}],\"key\":\"6707351604ee4c37928fcdc8ae86ad8f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ...\",\"marks\":[]}],\"key\":\"b9b9fae242df47ac9c46dfa6058e9fbb\"}],\"key\":\"d59f899b28964cafa3873362db80469b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"1926db8ac5c64879b2cd9a1a8a00971f\"}],\"key\":\"4f2f3d44eaef4fdea2c1bc8efc9086b1\"}],\"key\":\"2a55f087a2684a6c9303dc24f43f4fd7\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-prima"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ry/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"@Entity\",\"marks\":[]}],\"key\":\"8322d95764474252989610f6f15b1808\"}],\"key\":\"3ab2bfce8f0f44a98ecab81759706872\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"@Sync\",\"marks\":[]}],\"key\":\"6716617ce3eb417e94c86d13858de79c\"}],\"key\":\"75a41620f7e649fe821a903d213ce8fc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"class User {\",\"marks\":[]}],\"key\":\"59ac16d5685d4308a832a534b436cca7\"}],\"key\":\"d78ec3c0ce414441a4726af6490a7707\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ...\",\"marks\":[]}],\"key\":\"1e158a1fb6c74e9c9400a06c95ed376c\"}],\"key\":\"351d2374f13a4015920fddec20b6b0a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"368758c6961c45c9ae7c2d2a7ae323f0\"}],\"key\":\"f85bbc02f4674510b7900bd0c03cee9b\"}],\"key\":\"fc621a258d014003a2b238f04cf7d6b9\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"/// objectbox: sync\",\"marks\":[]}],\"key\":\"41a6b893b81242cfb35dcecc7f599884\"}],\"key\":\"75532abf9493465197e33221bd9308f2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"table User {\",\"marks\":[]}],\"key\":\"0b5004536aee4ea79cac20df3caa9597\"}],\"key\":\"60cee5a8e4ea49f688d4868b688f4ceb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ...\",\"marks\":[]}],\"key\":\"269b83bb283546848ee7b0a529962eab\"}],\"key\":\"bea78009aca44dc29f3fd0e108a2b145\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"170dbacba0284a4f9caaee61c898d017\"}],\"key\":\"18bc8d885f3442258ecda5b550766f51\"}],\"key\":\"4891f63f2d0a497c9ddf761"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"a3a80a1ff\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// `objectbox:\\\"sync\\\"`\",\"marks\":[]}],\"key\":\"66ff058c2862433292e2a14584b96500\"}],\"key\":\"94a1e499310a43f9b0128244632578d9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"type User struct {\",\"marks\":[]}],\"key\":\"5c04ed565f474e51a88dc5dd0cafd803\"}],\"key\":\"6415cf17a3534726a41559e64d8e657e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // ...\",\"marks\":[]}],\"key\":\"399425190cd1450c8eed20375775f356\"}],\"key\":\"48b80fb23afb41469b21e7e26959a66b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"806b397b82d844099468129b51d6791f\"}],\"key\":\"74dbfc1087d04200a2fd06286f4bffbf\"}],\"key\":\"8a3451b6588c4fc7b22ab3bc02cf327d\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Once the sync annotation is set on the intended types, you need to rebuild (e.g. Java/Kotlin) or trigger the ObjectBox generator (e.g. C and C++). This activates a \\\"sync flag\\\" in the metamodel (e.g. the model JSON file is updated).\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint "])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"div\",null,{\"className\":\"hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [\u0026_.can-override-bg]:bg-tint-active [\u0026_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-row\",\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"circle-info\",\"className\":\"size-5 mr-4 mt-0.5 leading-normal text-primary\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-4 [\u0026_.hint]:border [\u0026_pre]:border\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"At this point, it is not allowed to change a non-synced object type to a synced one. This would raise questions on how to handle pre-existing data, e.g. should it be deleted, synced (how exactly? using how many transactions? ...), or kept locally until objects are put again? We welcome your input on your use case.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Additionally, there may only be relations between sync-enabled or non-sync entities, not across the boundary.\"}]]]}]}]]}]]}]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-bloc"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"k:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"If you already have a non-synced type that you now want to sync (see also the info box above), these are the typical options you have:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ol\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'1.'\",\"--font-family\":\"inherit\",\"fontSize\":\"min(1em, 24px)\"}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"If you are still in development, add the sync annotation and wipe your database(s) to start fresh with that new data model\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'2.'\",\"--font-family\":\"inherit\",\"fontSize\":\"min(1em, 24px)\"}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"\\\"Replace\\\" the entity type using a new UID (check schema changes docs for the ObjectBox binding you are using). You can keep the type name; to ObjectBox it will be a different type as the UID is different. This will delete all existing data in that type.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#00"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"03_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'3.'\",\"--font-family\":\"inherit\",\"fontSize\":\"min(1em, 24px)\"}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Have a second, synced, object type and migrate your data in your code following your rules.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"start-the-sync-client\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h2\",null,{\"id\":\"start-the-sync-client\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#start-the-sync-client\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Start the Sync Client\"}]]]}]"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Create a Sync client for your Store and start it. It connects to a given sync server URL using some form of credentials to authenticate with the server. A minimal setup can look like this:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-3\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"96c3fb06f16640aebd1ca24129def837\",\"tabs\":[{\"id\":\"java-2\",\"title\":\"Java\"},{\"id\":\"kotlin-2\",\"title\":\"Kotlin\"},{\"id\":\"swift-3\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-3\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-2\",\"title\":\"C++\"},{\"id\":\"c-3\",\"title\":\"C\"},{\"id\":\"go-3\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncClient syncClient = Sync.client(\",\"marks\":[]}],\"key\":\"673dd915024f46d9ac7072873af7767a\"}],\"key\":\"7ec5b5be590c40a2b236f127d2f33375\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" boxStore, \",\"marks\":[]}],\"key\":\"bab8f709cd4a4edb9e94fca70fb4157a\"}],\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"key\":\"8f74dffc06d54fa29c2fe2a2f67a6ea8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \\\"ws://127.0.0.1\\\" /* Use wss for encrypted traffic. */, \",\"marks\":[]}],\"key\":\"856a031b0c6c4ffaad952b25e7b08bbf\"}],\"key\":\"64463379de714edda44a0ac1d71a8264\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" SyncCredentials.none()\",\"marks\":[]}],\"key\":\"e3dd872522cc4a49b585b88a16855ebb\"}],\"key\":\"e860de2c83aa48969c2ac03addb57ae8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\").buildAndStart(); // Connect and start syncing.\",\"marks\":[]}],\"key\":\"756eaa426fff49689b118be4415cbd62\"}],\"key\":\"8f696005b1214524b63e8ee28d037385\"}],\"key\":\"190249b7f3c544afa5cc87b94d48afa7\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val syncClient = Sync.client(\",\"marks\":[]}],\"key\":\"3fd6f614818a44dc9e6b17026ef1284d\"}],\"key\":\"7ce6529758be4f1ba9ca295f2d67f2e0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" boxStore,\",\"marks\":[]}],\"key\":\"d4342e5edda3469f8a2c41cb6445507f\"}],\"key\":\"17e659476ba74d849f36866ea1f2046f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \\\"ws://127.0.0.1\\\" /* Use wss for encrypted traffic. */,\",\"marks\":[]}],\"key\":\"c54121da5bb54c199c13457d8a0c97c1\"}],\"key\":\"aa5cd54902ae42b882fc1a58b426feec\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" SyncCredentials.none()\",\"marks\":[]}],\"key\":\"688aa7b381ff450fbc92d6288117b506\"}],\"key\":\"5e829dcd2c114b648c4dd3608d3d2eec\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\").buildAndStart() // Connect and start syncing.\",\"marks\":[]}],\"key\":\"2cb0e2aa303f4db0b34ff7d952a33cf8\"}],\"key\":\"50ba2e823a6d4fa1be0d44ef6e14d73c\"}],\"key\":\"d697c90fff4d4c398e4547bbeb1878d6\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90de"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"g_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"swift\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"try Sync.makeClient(store: store, urlString: \\\"ws://127.0.0.1:9999\\\",\",\"marks\":[]}],\"key\":\"0d9ac55c066448a3abea1712f90ba01d\"}],\"key\":\"4be589e7bca147bcb542903771414333\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" credentials: SyncCredentials.makeNone())\",\"marks\":[]}],\"key\":\"0e66dd129246409cbdb7129320bb0cb4\"}],\"key\":\"1984bb99aca64e03a484be8442d1c80c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"try client.start()\",\"marks\":[]}],\"key\":\"4a53b08bff3147029a572d20019d4045\"}],\"key\":\"a58af769c2b24551a25c50e73da59cfb\"}],\"key\":\"1a081a97d7c54889843532f69b969b9d\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncClient syncClient = Sync.client(\",\"marks\":[]}],\"key\":\"99143cc24afa494aa667c51a7ca4e782\"}],\"key\":\"26ac32b92c6940a5819e35c328dcc6f8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" store,\",\"marks\":[]}],\"key\":\"da273d790e7847f98ff1487cd92d41d7\"}],\"key\":\"9964ba0e8fda4159b6349ff8319011c7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'ws://127.0.0.1:9999', // wss for SSL, ws for unencrypted traffic\",\"marks\":[]}],\"key\":\"8e4383d692f94c9baeef543188cf212c\"}],\"key\":\"6254691e62c943ce95e3dcc9b8f2b590\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" SyncCredentials.none());\",\"marks\":[]}],\"key\":\"d3e1fa75993b40b0be06247e589d148f\"}],\"key\":\"2d2d696118f74c2f8a6d1d4f7c8408a1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.start(); // connect and start syncing\",\"marks\":[]}],\"key\":\"e6aded60f6fc4a19a77598ac3a6d7a97\"}],\"key\":\"129ce96dcfbc4ad6b66b4d23ace3d422\"}],\"key\":\"f7caa8d093c5439eabcc69885af261d5\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"std::shared_ptr\u003cobx::SyncClient\u003e syncClient = obx::Sync::client(\",\"marks\":[]}],\"key\":\"46dde4152b874682bf162897220b344b\"}],\"key\":\"381cf77cf9b749cf9fec27ad3f0ffdad\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" store, \",\"marks\":[]}],\"key\":\"0d71676389f04cb4ac0fbac1a0d76816\"}],\"key\":\"01d007197b5047d9a4ebda5e19d84924\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \\\"ws://127.0.0.1:9999\\\", // wss for SSL, ws for unencrypted traffic\",\"marks\":[]}],\"key\":\"4ebc46ff9d374a48abbf54be2789e519\"}],\"key\":\"378cb297e69d4d5586dbdd1a8fc986e6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" obx::SyncCredentials::none()\",\"marks\":[]}],\"key\":\"9b071a7ee0584cbfb08a769102098b1a\"}],\"key\":\"877ac03843de4b49a0cdc4f22ea6f669\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\");\",\"marks\":[]}],\"key\":\"a3174dfafcfb4ad19ca717b1aa35b95a\"}],\"key\":\"fe1e358e490841779f45a5911b044644\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003estart(); // connect and start syncing\",\"marks\":[]}],\"key\":\"d2de594d8d3c494f9e25d0044a6939d0\"}],\"key\":\"7a9ba6e086fd4e79a0810bd15ad97178\"}],\"key\":\"cc995c9b74ea4f4bba7efd722e7e297b\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"OBX_sync* sync_c"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"lient = obx_sync(store, \\\"ws://127.0.0.1:9999\\\"); // wss for SSL\",\"marks\":[]}],\"key\":\"76785e7a6e8d408eb99cdec2ff788aa4\"}],\"key\":\"b7d1e39bb62d4f05bf058ba08e7aa723\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_credentials(sync_client, OBXSyncCredentialsType_NONE, NULL, 0);\",\"marks\":[]}],\"key\":\"b75e6e52a90c4836ae104d6cc6ec7649\"}],\"key\":\"b732ec9e43bb400287e1646686868c3d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_start(sync_client); // connect and start syncing\",\"marks\":[]}],\"key\":\"b87342b572314faf8bd0fd171efadf10\"}],\"key\":\"5fe3e36a7bb54409acc311967e2be3d5\"}],\"key\":\"9955f088411045bfb4a69f55431118ad\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient, err := objectbox.NewSyncClient(\",\"marks\":[]}],\"key\":\"08c7374e579a4b87b26d31d9257b4e7d\"}],\"key\":\"745470b428ea4d1fac99064428edf3d5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\tstore,\",\"marks\":[]}],\"key\":\"0b1f9c3d8fd84a0493c692d11dd1130b\"}],\"key\":\"f2ad7c857cad456491373b2f43254d4d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\\"ws://127.0.0.1\\\", // wss for SSL, ws for unencrypted traffic\",\"marks\":[]}],\"key\":\"844ebbf2fc3041258cf48a40e8305aa7\"}],\"key\":\"8ff71267c65e4edf9b94a81579ae8e44\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\tobjectbox.SyncCredentialsNone())\",\"marks\":[]}],\"key\":\"5ef98765d5d243208f497e061dc66d51\"}],\"key\":\"989079b2abb94b8dbf9f047401b4c5c6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"cf3fc0b43a6c4182979fda6dc9060277\"}],\"key\":\"f986eaa718774c3cac74a264f2923ed7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"if err != nil {\",\"marks\":[]}],\"key\":\"4698c812ef114028954b0fb5bb780cbe\"}],\"key\":\"aff0a98ba25740e4b953bfd5b40d6a26\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\terr = syncClient.Start() // Connect and start syncing.\",\"marks\":[]}],\"key\":\"62efeb76412842d084f8f736889e25f3\"}],\"key\":\"f60212ce889749d0bffece4621718b43\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\\t\\t\",\"marks\":[]}],\"key\":\"3f41555923f2407b849df2b9369f3dda\"}],\"key\":\"f31c1443c30644eb87425dc785709896\"}],\"key\":\"092ed5c860f1456e83daa4329715c8b9\"},\"style\":[\"w-full mx-auto decoration"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"div\",null,{\"className\":\"hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-tint print-mode:!bg-tint theme-muted:bg-tint-base theme-bold-tint:bg-tint-base theme-gradient:bg-tint-12/1 border-tint [\u0026_.can-override-bg]:bg-tint-active [\u0026_.can-override-text]:text-tint-strong w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-row\",\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"circle-info\",\"className\":\"size-5 mr-4 mt-0.5 leading-normal text-primary\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-4 [\u0026_.hint]:border [\u0026_pre]:border\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"The example uses wss://127.0.0.1 for the server endpoint. This is the IP address of localhost and assumes that you run the server and client(s) on the same machine. If it's separate machines, you need to exhange 127.0.0.1 with an reachable IP address of the server, or, some valid DNS name.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradi"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ent-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl [\u0026_a]:text-primary [\u0026_a:hover]:text-primary-strong flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Using Android emulator? You can use 10.0.2.2 to reach the host (the machine running the emulator). \"}]],\"$L63\",[[\"$\",\"$57\",\"0\",{\"children\":\"\"}]]]}]}]]}]]}]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Sync client is started by calling \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"start()/buildAndStart()\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\". It will then try to connect to the server, authenticate and start syncing. Read below for more configuration options you can use before starting the connection.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Once the client is logged in, the server will push any changes it has missed. The server will also push any future changes while the client remains connected. This \"}]],\"$L64\",[[\"$\",\"$57\",\"0\",{\"children\":\" can be configured.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"All of this happens asynchronously. To observe these events (log in, sync completed, …) read below on how to \"}]],\"$L65\",[[\"$\",\"$57\",\"0\",{\"children\":\".\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"The client will now also push changes to the server for each Store transaction.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Should the client get disconnected, e.g. due to internet connection issues, it will automatically try to reconnect using an exponential back-off. Once the connection succeeds, data synchronization resumes.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"drop-off-send-only-clients\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"drop-off-send-only-clients\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"c"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"hildren\":[\"$\",\"a\",null,{\"href\":\"#drop-off-send-only-clients\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Drop-off, send-only clients\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"For some use cases, client should only report data and thus only send updates without ever receiving any data. We call those \\\"drop-off clients\\\". Technically, from an API perspective, these clients do not request updates from the server. Because requesting updates is the default, the sync client API has to be configured to do \\\"manual\\\" updates to actually disable updates from the server. This configuration has to happen before the client starts.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// C++; create syncClient as above, but do not start() just yet\",\"marks\":[]}],\"key\":\"99af30af52564a838fbc4b852aa119a2\"}],\"key\":\"b6dded8e5e8242738031a30b4619c760\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003esetRequestUpdatesMode(OBXRequestUpdatesMode_MANUAL);\",\"marks\":[]}],\"key\":\"41be812aee364a39a0b96ccfca40f4de\"}],\"key\":\"be40419070fd4d17809afad51d926e49\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003estart();\",\"marks\":[]}],\"key\":\"ff65681eafc3436995d2ba40bb461f3a\"}],\"key\":\"b7a458de596f47a6836f1328ea801136\"}],\"key\":\"13dd5b6b61ce41f6b8368851a39c01b5\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"],\"inlines\":[]}]}],[\"$\",\"$22\",n"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ull,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"secure-connection\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"secure-connection\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#secure-connection\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Secure Connection\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"When using \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"wss\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" as the protocol in the server URL a TLS encrypted connection is established. Use \"}],[\"$\",\"$57\",\"3\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"ws\"}]}],[\"$\",\"$57\",\"4\",{\"children\":\" instead to turn off transport encryption (insecure, not recommended! e.g. only use for testing).\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"authentication-options\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90de"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"g_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h2\",null,{\"id\":\"authentication-options\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#authentication-options\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Authentication options\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"There are currently multiple supported options for authenticating clients with a Sync server.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"jwt-authentication\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"jwt-authentication\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#jwt-authentication\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"childre"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"n\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"JWT authentication\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Clients can be authenticated using tokens in JWT (JSON web token) format. The general process is outlined in the \"}]],\"$L66\",[[\"$\",\"$57\",\"0\",{\"children\":\". Your client application typically will use a JWT authentication provider SDK to get a token in JWT format. This token is then set as a credential using the ObjectBox Sync client API:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-4\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"kE4QrdXQ9rOs\",\"tabs\":[{\"id\":\"java-3\",\"title\":\"Java\"},{\"id\":\"kotlin-3\",\"title\":\"Kotlin\"},{\"id\":\"swift-4\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-4\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-4\",\"title\":\"C++\"},{\"id\":\"c-5\",\"title\":\"C\"},{\"id\":\"go-4\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"String idToken = \\\"\u003ctoken\u003e\\\"; // Get from JWT authentication provider\",\"marks\":[]}],\"key\":\"B6k3OZWBRalo\"}],\"key\":\"Ie8UfdUMDHf8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.jwtIdToken(idToken);\",\"marks\":[]}],\"key\":\"DcuVwqihUh5c\"}],\"key\":\"IbL8GMJdGQVq\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Options for other types of JWT are available:\",\"marks\":[]}],\"key\":\"5PMJPynX3O8v\"}],\"key\":\"d14vpuUCz2Ft\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// jwtAccessToken(token), jwtRefreshToken(token), jwtCustomToken(token)\",\"marks\":[]}],\"key\":\"jwWRXFiB2z9z\"}],\"key\":\"h98WQYVFhsjI\"}],\"key\":\"MVVsAwDpoLYY\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val idToken: String = TODO() // Get from JWT authentication provider\",\"marks\":[]}],\"key\":\"zJZrvxO1Z2ER\"}],\"key\":\"jZ5nZQ1BU1Rr\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val credential = SyncCredentials.jwtIdToken(idToken)\",\"marks\":[]}],\"key\":\"CUxqrihHiNzp\"}],\"key\":\"YSdbu31Tl9I2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Options for other types of JWT are available:\",\"marks\":[]}],\"key\":\"XqBFb4UQVGr0\"}],\"key\":\"O7jpRLzPaLON\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// jwtAccessToken(token), jwtRefreshToken(token), jwtCustomToken(token)\",\"marks\":[]}],\"key\":\"xnm9pHx5fE5q\"}],\"key\":\"o74UQ27iUGs9\"}],\"key\":\"Ph9DNDVkp6QQ\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"swift\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"let idToken: String = \\\"TODO\\\" // Get from JWT authentication provider\",\"marks\":[]}],\"key\":\"RFIF9gpzlgqB\"}],\"key\":\"FSI4jgvBspsY\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"let credential = SyncCredentials.makeJwtIdToken(idToken)\",\"marks\":[]}],\"key\":\"wYraz1l27fRT\"}],\"key\":\"H1Mnabg2U4kU\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Options for other types of JWT are available:\",\"marks\":[]}],\"key\":\"hjmnLsaUxfyw\"}],\"key\":\"RKojLeY3uES1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// makeJwtAccessToken(...), makeJwtRefreshToken(...), makeJwtCustomToken(...)\",\"marks\":[]}],\"key\":\"pL5LQoS58LZL\"}],\"key\":\"z730VD8q4Rwj\"}],\"key\":\"8UfAuCI7y2de\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"String idToken = \\\"\u003ctoken\u003e\\\"; // Get from JWT authentication provider\",\"marks\":[]}],\"key\":\"jHnRhJdtRwy1\"}],\"key\":\"Dmc01YGN2W9Y\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.jwtIdToken(idToken);\",\"marks\":[]}],\"key\":\"nZOq5yFpCZMW\"}],\"key\":\"67NcDLhAS04k\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Options for other types of JWT are available:\",\"marks\":[]}],\"key\":\"YuXqKHYv2Qjt\"}],\"key\":\"KQ1hnQ3VcdCN\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// jwtAccessToken(token), jwtRefreshToken(token), jwtCustomToken(token)\",\"marks\":[]}],\"key\":\"UIbgc2Gk2j7o\"}],\"key\":\"kJAmZZUEDrNh\"}],\"key\":\"PYtsIu7ARzcn\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// TODO\",\"marks\":[]}],\"key\":\"qcH2GHIWFWK7\"}],\"key\":\"dnhcFaaOWZ0o\"}],\"key\":\"Mbsp2LNYVuod\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// TODO\",\"marks\":[]}],\"key\":\"AgvBjzwieIfP\"}],\"key\":\"JBepimSKfE4K\"}],\"key\":\"XTkxQZ5MLoWh\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// TODO\",\"marks\":[]}],\"key\":\"afBzQWgmqOYA\"}],\"key\":\"2qYmqGbQqfVd\"}],\"key\":\"rCyZl4qyxNaF\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"shared-secret\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-a"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"uto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"shared-secret\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#shared-secret\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Shared secret\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"This can be any pre-shared secret string or a byte sequence.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-5\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"4a51a2b1492643dc812ea28313fc215d\",\"tabs\":[{\"id\":\"java-4\",\"title\":\"Java\"},{\"id\":\"kotlin-4\",\"title\":\"Kotlin\"},{\"id\":\"swift-5\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-5\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-6\",\"title\":\"C++\"},{\"id\":\"c-7\",\"title\":\"C\"},{\"id\":\"go-5\",\"title\":\"Go"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.sharedSecret(\\\"\u003csecret\u003e\\\");\",\"marks\":[]}],\"key\":\"d92abce50d0649e58f7a0cf6b428530c\"}],\"key\":\"8346949a68d94d8394d250379276dc07\"}],\"key\":\"8c5b2a8842ec4a0cb7d251307b3f63e9\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val credential = SyncCredentials.sharedSecret(\\\"\u003csecret\u003e\\\")\",\"marks\":[]}],\"key\":\"eea74f4f59f34fc39bcef52c61c35609\"}],\"key\":\"cbcb35760fff415bb893cda5e56ce98b\"}],\"key\":\"b50c08d040fb4620abeaf8df8811bb95\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-s"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"tops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"swift\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"let credential = SyncCredentials.makeSharedSecret(\\\"\u003csecret\u003e\\\")\",\"marks\":[]}],\"key\":\"N1mVboZrHXHT\"}],\"key\":\"BHlbEB1oMk3N\"}],\"key\":\"4ruGN05X7rJx\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// use a string\",\"marks\":[]}],\"key\":\"dc16162ac10d4b1baf1bef768a5178dd\"}],\"key\":\"a1c7af9cf5924d7e90262c13d6865656\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.sharedSecretString(\\\"\u003csecret\u003e\\\");\",\"marks\":[]}],\"key\":\"ab626318e67c4ca8a52fee3a3005ee22\"}],\"key\":\"c5dd83dd01ea4bd5bd753893661a8730\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"3c5808c259644ba9ac0f801246e50331\"}],\"key\":\"eb46bb0bc5634ca8b5d64bb2daf04dbb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// or a byte vector\",\"marks\":[]}],\"key\":\"42cf50acfd1948c581d3643ceca45df9\"}],\"key\":\"fcefa3df1aa64c6a9d62133795c2c313\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Uint8List secret = Uint8List.fromList([0, 46, 79, 193, 185, 65, 73, 239, 15, 5]);\",\"marks\":[]}],\"key\":\"6ef73ad4da7a41328478447d346b6690\"}],\"key\":\"c836f24da3684c1f8a7f0679e5f4043c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.sharedSecretUint8List(secret);\",\"marks\":[]}],\"key\":\"fb8afb69215549e78e89604ee250ba45\"}],\"key\":\"74fdcaefc43d452f82d7f1da9ee40613\"}],\"key\":\"0d348f916f334aca885c9864366134e7\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 rela"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"tive origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// use a string\",\"marks\":[]}],\"key\":\"a2eca1f94af445b7b13bffeaf40139ba\"}],\"key\":\"5afe81c4298a49c9b033d7ed1a3420f4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx::SyncCredentials cred = obx::SyncCredentials::sharedSecret(\\\"string\\\");\",\"marks\":[]}],\"key\":\"a97ec894d28842568c8935ee0a223223\"}],\"key\":\"b2350828ec82456bb0d5731410586bd8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"9d764862c3e44b86ba681545a366b646\"}],\"key\":\"077de29b59d04200af0164e8fac81d91\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// or a byte vector\",\"marks\":[]}],\"key\":\"dd963b63e0d442b1a17c54e445211831\"}],\"key\":\"254d308c57ba47c489ffe5ffe6cec2d0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"std::vector\u003cuint8_t\u003e secret = {0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186};\",\"marks\":[]}],\"key\":\"dc719e061d2846199617ddb890bd6827\"}],\"key\":\"c91e097d177641a597e129815b56e9e8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx::SyncCredentials cred = obx::SyncCredentials::sharedSecret(std::move(secret));\",\"marks\":[]}],\"key\":\"0064486ff0054775bdd7466778155029\"}],\"key\":\"91a9ceb9694c4e5699fcbe07bf136183\"}],\"key\":\"eec7dc16bc584b34ba7568b0e9042bb9\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// use a string\",\"marks\":[]}],\"key\":\"983afd13681b4bfc8ab8149a85b9db95\"}],\"key\":\"a460c544b99b41de8adda62ae2c2682c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"const char* secret = \\\"secret\\\"\",\"marks\":[]}],\"key\":\"7ee4ea0ebb0544aa9621a8b2737fe519\"}],\"key\":\"894a3c1f878f4e67a0fd03fe12cd75dd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_credentials(sync_client, \",\"marks\":[]}],\"key\":\"858b454e1a974143b4844709951cc7c2\"}],\"key\":\"54e60d8c7f1b42b4a441f3bbd399acf4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"ob"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ject\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" OBXSyncCredentialsType_SHARED_SECRET, \",\"marks\":[]}],\"key\":\"8f66a5c0bc294f85932a93b18c876799\"}],\"key\":\"101c2467311344e882a87c9d7445d702\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" secret, \",\"marks\":[]}],\"key\":\"3f23545dcf924dbca97ed22594f4f933\"}],\"key\":\"0e3c0256f7244b7789a1b4e9ac1b064e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" strlen(secret)\",\"marks\":[]}],\"key\":\"ab804fc21b3c4dbca4223ca14f449900\"}],\"key\":\"e3355200a2064d0dbe65de3286f61bc8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\");\",\"marks\":[]}],\"key\":\"36c920c8096f4aa2add823b530b23161\"}],\"key\":\"5576062096ca42c3aada45387b3d3a1b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"27248ac8207b4ac1940718d22e6673ae\"}],\"key\":\"5173fc48b7c948499e64997001eb3849\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// or a byte vector\",\"marks\":[]}],\"key\":\"4ffda32347834d0c874afa575aa0c620\"}],\"key\":\"31a8ffe709ae4e36be6f39572d0effca\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"uint8_t secret[] = {0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186};\",\"marks\":[]}],\"key\":\"c0e4434de5ea4cc59aa3559cb43e4cb3\"}],\"key\":\"625e77f0efc14070b09b3fca14110d90\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_credentials(sync_client, \",\"marks\":[]}],\"key\":\"7cc4865968744a31855dec4ccdd3373b\"}],\"key\":\"ab576adebabb49c781942da60961f0a5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" OBXSyncCredentialsType_SHARED_SECRET, \",\"marks\":[]}],\"key\":\"b04dd4273f9143af91096daf5d54ce6c\"}],\"key\":\"db6cd54fc77d4e0b9d7d3c277f4db7eb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" secret, \",\"marks\":[]}],\"key\":\"b21ec4392ffe4f84b5e88d901c9ec1a9\"}],\"key\":\"f1a1f7483f0e42d4a3630b19af69dbdd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" sizeof(secret)\",\"marks\":[]}],\"key\":\"2b804d5b5d6e4201a33df5a296ad8c4a\"}],\"key\":\"a63855a221c043c5a9551eeb7b61c0e0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\");\",\"marks\":[]}],\"key\":\"99e16d697fa84ee695fdfc70f9526e42\"}],\"key\":\"806ff756940546129a106ce6489383e4\"}],\"key\":\"aa402dbdf82f495bbdebf7eb08174fc9\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":f"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"alse,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// use a string\",\"marks\":[]}],\"key\":\"a1a3be54be6549e3ac6155a948dc8e6f\"}],\"key\":\"c3fea7d05e9b46239824d17e8689aa31\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var cred = objectbox.SyncCredentialsSharedSecret([]byte(\\\"string\\\"))\",\"marks\":[]}],\"key\":\"9b31773e7ae44bcba7b6ccf3ef492632\"}],\"key\":\"db0d8e350eaf4f62a41005f6e769b52a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"a810f8d98f8b495a94feaf61b8d695d2\"}],\"key\":\"95eac942acda43a99b20f73c704ba672\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// or a byte vector\",\"marks\":[]}],\"key\":\"342558322a184ccea5e672185e0dcae9\"}],\"key\":\"d28eea1656414eda91b7ea0deae4edb4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var secret = []byte{0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186}\",\"marks\":[]}],\"key\":\"079791526805459cb59224af138006ec\"}],\"key\":\"b8b9e38d45b24d9c871cbcedc3aa8666\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var cred = objectbox.SyncCredentialsSharedSecret(secret)\",\"marks\":[]}],\"key\":\"008889296425495792f1206c44b918b8\"}],\"key\":\"fc9afa4304174cef99f0c7f1baa72be4\"}],\"key\":\"05ab20113aad4c76a6910dceba44833d\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"google-sign-in\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"google-sign-in\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#google-sign-in\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Google Sign-In\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-g"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"radient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"The ObjectBox Sync server supports authenticating users using their Google account. This assumes \"}]],\"$L67\",[[\"$\",\"$57\",\"0\",{\"children\":\" is integrated into your app and it has \"}]],\"$L68\",[[\"$\",\"$57\",\"0\",{\"children\":\".\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-6\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"2fe89cc79e2d456ca7d2b90fff55b08c\",\"tabs\":[{\"id\":\"java-5\",\"title\":\"Java\"},{\"id\":\"kotlin-5\",\"title\":\"Kotlin\"},{\"id\":\"swift-6\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-6\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-8\",\"title\":\"C++\"},{\"id\":\"c-9\",\"title\":\"C\"},{\"id\":\"go-6\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.google(account.getIdToken());\",\"marks\":[]}],\"key\":\"4a7e0a36e00b4114993ef3275eccfe88\"}],\"key\":\"fc65e445c8284548879160c9dbd748bb\"}],\"key\":\"797f33021eee46b39aa5fc597ac0f623\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"chi"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ldren\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val credential = SyncCredentials.google(account.getIdToken())\",\"marks\":[]}],\"key\":\"bb1e152b7d9140039b14a23452bcd7c2\"}],\"key\":\"88553513020f483fb315cadf3e627ce1\"}],\"key\":\"d1b6cff184ad4bd1b530556ae4d7ed90\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"i\",null,{\"className\":\"font-italic\",\"children\":\"Coming soon!\"}]}]]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// use a string\",\"marks\":[]}],\"key\":\"d8594b12c3fc409ca46fceb75dc0f746\"}],\"key\":\"cc9774dfcc0c4c54baf5ea1b86c1709c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.googleAuthString(\\\"\u003csecret\u003e\\\");\",\"marks\":[]}],\"key\":\"e45fe4438562400b8e0fee66b6a187a4\"}],\"key\":\"e46b79e6c38a4ecc96baabe1fe249a30\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"tex"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"t\":\"\",\"marks\":[]}],\"key\":\"2ecc4985664c4dd38ff1994892ed6b0b\"}],\"key\":\"b065f823d79b4818960889cc9732c6f3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// or a byte vector\",\"marks\":[]}],\"key\":\"a54df312d88749c39f385ca457a8a9fb\"}],\"key\":\"4dea188091264ffbab1fd78b0c997405\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Uint8List secret = Uint8List.fromList([0, 46, 79, 193, 185, 65, 73, 239, 15, 5]);\",\"marks\":[]}],\"key\":\"d4d3d5f6865042f5bae90cdf69884912\"}],\"key\":\"3046743b4966405d8475b5ec5cbd9d71\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.googleAuthUint8List(secret);\",\"marks\":[]}],\"key\":\"bd6c1dbe79f348bb8a294e71cb41705a\"}],\"key\":\"59de726ca255461584a4c3abfb02fdac\"}],\"key\":\"8e3debee79bf49509edec25457d74c65\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"i\",null,{\"className\":\"font-italic\",\"children\":\"Coming soon!\"}]}]]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_credentials(sync_client, \",\"marks\":[]}],\"key\":\"8719b0bd09a04ee9801eabbdbc215d7b\"}],\"key\":\"1301ec73531249be8d25d830e4a7821b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" OBXSyncCredentialsType_GOOGLE_AUTH, \",\"marks\":[]}],\"key\":\"8bce5dfbfd784e7684cd2f4276eec2bf\"}],\"key\":\"15a9d7f44bee444a8f0c7818a9d5ab60\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" googleIdToken, \",\"marks\":[]}],\"key\":\"cb7a0eff892a4f2da"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"650ad1c44aaa3c1\"}],\"key\":\"e633662c0f144fa69d406225a2a11d38\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" strlen(googleIdToken)\",\"marks\":[]}],\"key\":\"49c0eae912f042fc9fe85f003e093997\"}],\"key\":\"543ab8d876634e7689789850574fbb25\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" );\",\"marks\":[]}],\"key\":\"543c556550da42f588e9d3af467cadc8\"}],\"key\":\"d7c82c339a594a928dfd843fc9cbec34\"}],\"key\":\"3a610d7e2d164d67ab758c952cd9381b\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// use a string\",\"marks\":[]}],\"key\":\"d7e2ca9add604dcaa567cd0c362a01fc\"}],\"key\":\"8dc6836acd0a4015ba523979eb011f5e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var cred = objectbox.SyncCredentialsGoogleAuth([]byte(\\\"string\\\"))\",\"marks\":[]}],\"key\":\"18d8796777ef466aa5da4975998522a4\"}],\"key\":\"32f9c5315f614b5098a6931a0760165b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"a8cad0be811840c882e4bc33359638d5\"}],\"key\":\"3b4454bcf9ab4a20bb54e20f20dba5f6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// or a byte vector\",\"marks\":[]}],\"key\":\"01dee67863784566a88ee7a8aeabf7e3\"}],\"key\":\"f36642dc9e714a6a950454b8aab82f2c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var secret = []byte{0, 46, 79, 193, 185, 65, 73, 239, 15, 5, 189, 186}\",\"marks\":[]}],\"key\":\"fc688137c48d46af81a21e705eb53224\"}],\"key\":\"2e8000d157fc49b99c633927843ab255\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var cred = objectbox.SyncCredentialsGoogleAuth(secret)\",\"marks\":[]}],\"key\":\"15461222f9d6471cbc3b609c9e150d87\"}],\"key\":\"dea56521f9cf4dc2b3f8de74a0185305\"}],\"key\":\"617d7d69db10465094e4c6496534be0d\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"no-authentication-insecure\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"no-authentication-insecure\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#no-authentication-insecure\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"No authentication (insecure)\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"div\",null,{\"className\":\"hint p-4 transition-colors rounded-md straight-corners:rounded-none bg-red-500/2 border-red-500/4 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-row\",\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"triangle-exclamation\",\"className\":\"size-5 mr-4 mt-0.5 leading-normal text-red-500 dark:text-red-400\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-4 [\u0026_.hint]:border [\u0026_pre]:border\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto max-w-3xl text-red-950 dark:text-red-50 [\u0026_a]:text-red-800 [\u0026_a:hover]:text-red-900 dark:[\u0026_a]:text-red-400 dark:[\u0026_a:hover]:text-red-300 [\u0026_.can-override-bg]:bg-red-500/3 [\u0026_.can-override-text]:text-red-400 decoration-red-800/6 dark:decoration-red-400/6 flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto max-w-3xl text-red-950 dark:text-red-50 [\u0026_a]:text-red-800 [\u0026_a:hover]:text-red-900 dark:[\u0026_a]"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":text-red-400 dark:[\u0026_a:hover]:text-red-300 [\u0026_.can-override-bg]:bg-red-500/3 [\u0026_.can-override-text]:text-red-400 decoration-red-800/6 dark:decoration-red-400/6 flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Never use this option in an app shipped to customers. It is inherently insecure and allows anyone to connect to the sync server.\"}]]]}]}]]}]]}]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"For development and testing, it is often easier to just have no authentication at all to quickly get things up and running.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-7\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"a06150726e4244dba2b72afd02f1fcdc\",\"tabs\":[{\"id\":\"java-6\",\"title\":\"Java\"},{\"id\":\"kotlin-6\",\"title\":\"Kotlin\"},{\"id\":\"swift-7\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-7\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-10\",\"title\":\"C++\"},{\"id\":\"c-11\",\"title\":\"C\"},{\"id\":\"go-7\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCre"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"dentials.none();\",\"marks\":[]}],\"key\":\"66ce3160bbb1438ea1b4269ac5cf8793\"}],\"key\":\"d7e50da733674b84b54fd2cdf55026cd\"}],\"key\":\"b57a578c66fb43f6b4490e1a7643033c\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val credential = SyncCredentials.none()\",\"marks\":[]}],\"key\":\"9f1993700648440ba93525dfd3ca1250\"}],\"key\":\"e2d990b89ce14ac59feaa9d0e0492051\"}],\"key\":\"07b0e46557934d2f86e3f5a560c32981\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"i\",null,{\"className\":\"font-italic\",\"children\":\"Coming soon!\"}]}]]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCredentials credential = SyncCredentials.none();\",\"marks\":[]}],\"key\":\"2c3c46d14ad541059deaa7f2044164b1\"}],\"key\":\"7e4b19156abc4e0eb8286beab6860f3f\"}],\"key\":\"a1036c1bd34b4603bbfc750dc8757251\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx::SyncCredentials credential = obx::SyncCredentials::none();\",\"marks\":[]}],\"key\":\"3614b20ae84541969dfdcc41006d51b2\"}],\"key\":\"05adf6e8a2284011aa573518d74369b0\"}],\"key\":\"136e36b534dc4514abbb4ade6f1de26f\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_credentials(sync_client, OBXSyncCredentialsType_NONE, NULL, 0)\",\"marks\":[]}],\"key\":\"370f03a40bb340ca9e768b850af94774\"}],\"key\":\"59ed2d41ba894fcab389d168d3621ed0\"}],\"key\":\"cd70670e386a40b0a4e926efd5649780\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"var cred = objectbox.SyncCredentialsNone()\",\"marks\":[]}],\"key\":\"c7409c496824459e84b6431a59fc7884\"}],\"key\":\"095dd61723ef420e816e6eca1fd93f88\"}],\"key\":\"e8b7f46d411c4cf783c2d2b5d5bce70e\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"manually-start\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h2\",null,{\"id\":\"manually-start\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#manually-start\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Manually start\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Using the example above, the sync client automatically connects to the server and starts to sync. It is also possible to just build the client and then start to sync once you"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"r code is ready to.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-8\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"4d402a28be514b9c9dc469ddc9a87084\",\"tabs\":[{\"id\":\"java-7\",\"title\":\"Java\"},{\"id\":\"kotlin-7\",\"title\":\"Kotlin\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Just build the client.\",\"marks\":[]}],\"key\":\"cfbdbf3b9f4245cca501017082138ef7\"}],\"key\":\"73c9b1891f81406aae85eb16bf4a5785\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncClient syncClient = Sync.client(...).build();\",\"marks\":[]}],\"key\":\"eeef959ec45e42fab38aa80dcac2cec0\"}],\"key\":\"871d87ecb6334eec81eafee473b633bc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"dae6885291794511b31f011b93b5dcac\"}],\"key\":\"235bdaea2c894396a5f83f669fb38003\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Start now.\",\"marks\":[]}],\"key\":\"48a475d204b1477e81cd6a2694af9c37\"}],\"key\":\"253f0e14a2064cfe82fe11938410bd0e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.start();\",\"marks\":[]}],\"key\":\"4ba46097973f48d2a66336ff303f85bf\"}],\"key\":\"3f0b525b6be64634be00ad260e2a1b9d\"}],\"key\":\"4da5d56fc3724434921849c1271341b1\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Just build the client.\",\"marks\":[]}],\"key\":\"7945b0bfff084417b9cc3c02851d5250\"}],\"key\":\"e3eccbdd0ff84d639423a0508de19e8f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val syncClient = Sync.client(...).build()\",\"marks\":[]}],\"key\":\"a2f09ea690d245cda421a5ee6e306429\"}],\"key\":\"1b98a57aba5548faadac3a694fc53291\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"d93e6d85cd454e46a3fe85184942eb3c\"}],\"key\":\"ddb22fe188424f408347986c2e4b771e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Start now.\",\"marks\":[]}],\"key\":\"8f6420f94c464752abc0dae5dfb68bb2\"}],\"key\":\"2c000020c5d14ef280865588f0e45861\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.start()\",\"marks\":[]}],\"key\":\"190671c594bb44f9a46d3315b5544843\"}],\"key\":\"c6be6ef1c57046309289d5b0e7ffdbf6\"}],\"key\":\"0e10849602054e7799ed784afeb175e7\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Note that a started sync client can not be started again. Stop and close an existing one and build a new one instead.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"listening-to-events\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h2\",null,{\"id\":\"listening-to-events\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#listening-to-events\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Listening to events\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"The sync client supports listening to various events, e.g. if authentication has failed or if the client was disconnected from the server. This enables other components of an app, like the user interface, to react accordingly.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-9\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"4136c6364f544238b00d9914525db6a3\",\"tabs\":[{\"id\":\"java-8\",\"title\":\"Java\"},{\"id\":\"kotlin-8\",\"title\":\"Kotlin\"},{\"id\":\"swift-8\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-8\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-12\",\"title\":\"C++\"},{\"id\":\"c-13\",\"title\":\"C\"},{\"id\":\"go-8\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,",_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"It's possible to set one or more specific listeners that observe some events, or a general listener that observes all events. When building a Sync client use:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ul\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"loginListener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe login events.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"completedListener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe when synchronization has completed.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48p"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"x_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"connectionListener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe connection events.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"classNam"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"e\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"listener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe all of the above events. Use \"}],[\"$\",\"$57\",\"2\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"AbstractSyncListener\"}]}],[\"$\",\"$57\",\"3\",{\"children\":\" and only override methods of interest to simplify your listener implementation.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"See the description of each listener class and its methods for details.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Note that listeners can also be set or removed at any later point using \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncClient.setSyncListen"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"er(listener)\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" and related methods.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncLoginListener loginListener = new SyncLoginListener() {\",\"marks\":[]}],\"key\":\"678ce3d3afd04af7b70178e581f792f4\"}],\"key\":\"1afbc425f229497fba9e125a3bacddbe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" @Override\",\"marks\":[]}],\"key\":\"bc95a53bb81f47f899218730ce898297\"}],\"key\":\"5b2e198db86d46c1bc14100fb016dcc8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" public void onLoggedIn() {\",\"marks\":[]}],\"key\":\"a3f7db96a18a443ea9cad5e559a26840\"}],\"key\":\"3a31ffa9dffd42f2a762f44059ead2a7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Login succesful.\",\"marks\":[]}],\"key\":\"6491e9b2cda442c9b72b2471092f4197\"}],\"key\":\"1fe01e58b77d4fc4b8956ca80a522df9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"63a29b8488044770bfec4de9b4e097fb\"}],\"key\":\"f99bc4ba04854b1092461161c8d31714\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"c437e26d373c49bc82442186a462ecb4\"}],\"key\":\"636c8bebf6f84dce8998db251553f288\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" @Override\",\"marks\":[]}],\"key\":\"994770975da243feb9cbc0b16585eff8\"}],\"key\":\"549f2f6cd3f64c3b95e6bf17f3353f3c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" public void onLoginFailed(long syncLoginCode) {\",\"marks\":[]}],\"key\":\"a585396d70f546748bf58f0717ba5d29\"}],\"key\":\"033c8eb7ef784c0d86fe2d4b8a542717\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Login failed. Returns one of SyncLoginCodes.\",\"marks\":[]}],\"key\":\"cec989c0ec674b65b76145b2d87bae04\"}],\"key\":\"89a49e93489848c385080fd1d68e77f4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"e7e5c25177d84288aa3d4c96b1889ff0\"}],\"key\":\"04a3f835488742da84ff3b9e0978785a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"9c1f474f744c4ab79ad47297628f4282\"}],\"key\":\"3ec83e74410e413798107faa7687345c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"874fad6abc894a5dbccbd11c5973109e\"}],\"key\":\"6738da08ea114cab9c996774e7bba3db\"},{\"object\":\"block\",\"type\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncCompletedListener completedListener = new SyncCompletedListener() {\",\"marks\":[]}],\"key\":\"f80c35172fcb45109ca7fdbd21222202\"}],\"key\":\"9bcb957202894ebc8b07dd2136d85ca0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" @Override\",\"marks\":[]}],\"key\":\"6e968c2ad7364ce583ebe4610d493dab\"}],\"key\":\"6de22ba0eb754dad90119b36cfa0fe04\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" public void onUpdatesCompleted() {\",\"marks\":[]}],\"key\":\"a80d063835364686afa6ad64ef7ab18d\"}],\"key\":\"7eeb14b991f14d40b33b6b8e0da41ef1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // A sync has completed, client is up-to-date.\",\"marks\":[]}],\"key\":\"e2c6d8741999423bbcfa3a5f6e15d0cf\"}],\"key\":\"fe39ef07460f47688b40a3c3b581e09c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"e73ec9f609184b15abfd5c83d5523499\"}],\"key\":\"7d32dd17368f4666acaaeb30a787f566\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"f7cd3567cb7d4628a7947b827769e70a\"}],\"key\":\"1c877add656048f285beb851f023b09c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"22e9dee491d1490c9f391603760d645b\"}],\"key\":\"d1cbfc8094164da6883925cc8ae39af2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncConnectionListener connectListener = new SyncConnectionListener() {\",\"marks\":[]}],\"key\":\"4e2e86cd2456407ea2604442954212a6\"}],\"key\":\"a417fcfa43ce4669a489eb0345ee8d64\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" @Override\",\"marks\":[]}],\"key\":\"72c7942d6d454822876e24ee4a034618\"}],\"key\":\"8cae2d787d69435f8c1fff1925601e73\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" public void onDisconnected() {\",\"marks\":[]}],\"key\":\"45beb762002142afb41c0367f9bdb5d4\"}],\"key\":\"d3dc2d0b317c4962bc7580ec2d51d58f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Client disconnected from the server.\",\"marks\":[]}],\"key\":\"9b936b1166f8404ea6899464c7001103\"}],\"key\":\"0a919c40aac3468ebddb325f797c641a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Depending on the configuration it will try to re-connect.\",\"marks\":[]}],\"key\":\"0bc0a33970ce40aea0da0efea16b3032\"}],\"key\":\"79f1f32a98c74f9381eba07f947565e6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"75bfae54b70142149adad9b4c4da164d\"}],\"key\":\"959d2742e6314448b9e4866bcc783233\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"0372a93a448f4a34a472a82f20470d73\"}],\"key\":\"17e86261108d4aea97089ba8cb0a68c6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"c96fcba9bb194c19a9926d2acdef3ef1\"}],\"key\":\"48562618298c442d875b73b8948f7424\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Set listeners when building the client.\",\"marks\":[]}],\"key\":\"dfb3486b2d4e4d7d85d8073e2c51a5c7\"}],\"key\":\"8d3b7ba005c946d88caed1e66b5c2a4d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncClient syncClient = Sync.client(...)\",\"marks\":[]}],\"key\":\"d5d0b7541b0746338dcfdc1affc1fbe9\"}],\"key\":\"0c95debb8f90401ea7d5c0bc0cebcfe0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .loginListener(loginListener)\",\"marks\":[]}],\"key\":\"592a6591f1174a61958c893c527adc84\"}],\"key\":\"21ce5243b8e44b1fb13e54438c776d89\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .completedListener(completedListener)\",\"marks\":[]}],\"key\":\"cbf066e329924ea9886530adecb822ea\"}],\"key\":\"e42a2c358fdd4ba78291fe2e4eb18fea\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .connectionListener(connectListener)\",\"marks\":[]}],\"key\":\"5e19c4d1ad33419798ea4deebb2f9ad8\"}],\"key\":\"c86cd6407d3b49ba9daf3fbd0ae0e9cc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .build();\",\"marks\":[]}],\"key\":\"3ff6e4fc3c914ccaaf1861d26e15ad45\"}],\"key\":\"2ce0f66dde15459abcbbc2820b042434\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \",\"marks\":[]}],\"key\":\"5f86212245484aaa86eaca6f4271f36e\"}],\"key\":\"0a3dbc4d50eb4988b46dafa32cb53e60\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Set (or replace) a listener later.\",\"marks\":[]}],\"key\":\"68a9423d12eb4070b4e19138a4121549\"}],\"key\":\"795dc444a1524fddb17b8b2717e09f5c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncLoginListener(listener);\",\"marks\":[]}],\"key\":\"90b376f7ab8a411bb66088f1a02d9fd0\"}],\"key\":\"a1d2b4bc216b40d0a9bd453e5434e5f6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"79e4b09be9fa43569e97b5bbeed3132d\"}],\"key\":\"88241c4367ec4dd2a72c99fd27afcff4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Remove an existing listener.\",\"marks\":[]}],\"key\":\"fd8d77f2a17a41e4a210732b1c076d55\"}],\"key\":\"681cc518182046f792cb9704060c699e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncConnectionListener(null);\",\"marks\":[]}],\"key\":\"7b70a96201634cbb81332daa368bc8ab\"}],\"key\":\"fdb48ebdbd214b11a5a438fcddf17069\"}],\"key\":\"1bc24c106ef24f919ecfe19964eca777\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"It's possible to set one or more specific listeners that observe some events, or a general listener that observes all events. When building a Sync client use:\"}]]"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ul\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"loginListener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe login events.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skel"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"eton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"completedListener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe when synchronization has completed.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\","])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"connectionListener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe connection events.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decorati"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"on-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"listener(listener)\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe all of the above events. Use \"}],[\"$\",\"$57\",\"2\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"AbstractSyncListener\"}]}],[\"$\",\"$57\",\"3\",{\"children\":\" and only override methods of interest to simplify your listener implementation.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"See the description of each listener class and its methods for details.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Note that listeners can also be set or removed at any later point using \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncClient.setSyncListener(listener)\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" and related methods.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val loginListener: SyncLoginListener = object : SyncLoginListener {\",\"marks\":[]}],\"key\":\"9d93d4ea47364845a4cb4930c8a4be7c\"}],\"key\":\"3eb1cc4f124a4fdbb4c554b4d5503255\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" override fun onLoggedIn() {\",\"marks\":[]}],\"key\":\"9ef70325b3c34c6986c04a92231c66c1\"}],\"key\":\"14e7c7a6655d4a07a57e5fdc72af9e0a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Login succesful.\",\"marks\":[]}],\"key\":\"464e3b15b1674019b063815cb5f64da4\"}],\"key\":\"fab1a38c669c4257aa344b4dd47867d9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"81f2a4cd82ce40e3aca9a5dd6b3c296f\"}],\"key\":\"1f7b4d00fb0c47a2b89edf2941fd8f1d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"571a5cba784041b18dd30cd3979cfa8d\"}],\"key\":\"40c47882531e4cf4ba1be1ded7cb13c2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" override fun onLoginFailed(syncLoginCode: Long) {\",\"marks\":[]}],\"key\":\"7f4604566c4b45e3ae49ab217b79739c\"}],\"key\":\"b8b2ee4f48a147b397b7c59de2c56d7e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Login failed. Returns one of SyncLoginCodes.\",\"marks\":[]}],\"key\":\"b68bfd064b3441c892dee200e0bbde6c\"}],\"key\":\"5c5103672631467d88793e94f29663e5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"c60087fbe4b643d3a4df820713313251\"}],\"key\":\"bc18455933194499999490cc90f59424\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"c1259727e53c4e80b0230cc2e99c65b5\"}],\"key\":\"1f5249d701e64c57a20c46c390d9cee2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"1d7f0a12d970441c81c38a4e92c497b6\"}],\"key\":\"b0923a4a2eb946d88ab599694b8673ac\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val completedListener = SyncCompletedListener {\",\"marks\":[]}],\"key\":\"9fc04fb2fd9d4989948d5709660d8850\"}],\"key\":\"47edc216cc9b49aabe4d6c71f07d2364\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // A sync has completed, client is up-to-date.\",\"marks\":[]}],\"key\":\"8d40a1b9c3464e4692e12cec397f05b5\"}],\"key\":\"9bf373e520ab4b9b98c9aad730ae660e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"fb7bb19a563341a3a08ad17533f1e119\"}],\"key\":\"22fd107e62e24b45856271f261b81992\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"3bcb9716ec104cf3abe7d098e2af3fa0\"}],\"key\":\"edabd097982248c3b520df9b5875d8e7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val connectListener = object : SyncConnectionListener {\",\"marks\":[]}],\"key\":\"c5f2c502c39a4ea3a3a1c2c03d38d158\"}],\"key\":\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"c6cc2d6431524cde8dbde62e11475c92\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" override fun onDisconnected() {\",\"marks\":[]}],\"key\":\"c953e3d2d67847518755feb14446400c\"}],\"key\":\"bafb93a1e8844cebb6c30fcade819bda\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Client disconnected from the server.\",\"marks\":[]}],\"key\":\"e02c2d12422c4e68ba8348686be28798\"}],\"key\":\"b41d9c8799e4400e8665fba93cc3bf33\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Depending on the configuration it will try to re-connect.\",\"marks\":[]}],\"key\":\"27ede086492d49e8b980506a25bb3274\"}],\"key\":\"07c840a0544543db81f7703cad862674\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"adfd465f00b84af4ae3793b7c5287d6f\"}],\"key\":\"9bd9b9a793a2475bb1c415b0b0161480\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"9d7a66ae80514b779500308f6ed5aa60\"}],\"key\":\"d673b36c7cb2498bbd540a2b2e15b217\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"adcb893cc0da482bb0bd6eb3a037b484\"}],\"key\":\"1bcde19f3ba24e9aa40fd5fed2cca9db\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Set listeners when building the client.\",\"marks\":[]}],\"key\":\"eff3e871d811454eaded362592a5f5ba\"}],\"key\":\"cb92c7294027460cb21e651688f80346\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val syncClient = Sync.client(...)\",\"marks\":[]}],\"key\":\"1680337ba0204df596818cf610d6bba5\"}],\"key\":\"2c96f4eac151471eae374abcdb29dbd7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .loginListener(loginListener)\",\"marks\":[]}],\"key\":\"ac454d08490f4816a028b0d3317f5a22\"}],\"key\":\"556e2481d1f64d29a664724b62ef0193\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .completedListener(completedListener)\",\"marks\":[]}],\"key\":\"fe7d91c66a9249e6ad43ca33b20bca4f\"}],\"key\":\"74a5419e170e495baddf0cffbf622cdb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .connectionListener(connectListener)\",\"marks\":[]}],\"key\":\"53692a6a541e40b6a607b975ad03677a\"}],\"key\":\"40628226eee94067b9f01074de2fdabc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .build()\",\"marks\":[]}],\"key\":\"db094cb628fb46529df49b1135165e9a\"}],\"key\":\"026da2c585654a4cbb55f2c6e48cbf26\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \",\"marks\":[]}],\"key\":\"3471c329204a40a99649a50f794e2722\"}],\"key\":\"8f79988cc40041aa9b23e0035a981dca\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Set (or replace) a listener later.\",\"marks\":[]}],\"key\":\"c54d309f5b4c40f7b67136b1aaa83804\"}],\"key\":\"0a0abbc84b0d4e6db289c91b46b4e1d7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncLoginListener(listener)\",\"marks\":[]}],\"key\":\"7cef12d857464f29ab210cf6ac861fcf\"}],\"key\":\"a5fc22fc22cd4750b90b1d7458641645\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"a83313fa6f69441ca35f401261ea71c9\"}],\"key\":\"dce7860bc5a74b2181d2c378429de494\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"n"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"odes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Remove an existing listener.\",\"marks\":[]}],\"key\":\"b0e90917215d49c08289e23b2e8b4b97\"}],\"key\":\"0742f8f49a9445188357f0a231911efe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncConnectionListener(null)\",\"marks\":[]}],\"key\":\"24669c8e899e41bc9221ae1316e0c8a4\"}],\"key\":\"963ee5e668a14a08b0503117433b1e38\"}],\"key\":\"bcef49207cc34c89a6a90f6e32be3a69\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"It's possible to set one or more specific listeners that observe some events, or a general listener that observes all events. The SyncClient protocol offers the following properties to attach listeners:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ul\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"loginListener\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe login events.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-grad"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"completedListener\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe when synchronization has completed.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"connectionListener\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe connection events.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"cla"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ssName\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"listener\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe all of the above events.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"There is a protocol for each listener type. Note that listeners can also be set or removed at any later point by setting the listener property to \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"nil\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\".\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"By implementing a listener protocol and setting the matching property in SyncClient, you are called back. Let's have a look at the available listener protocols for details:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"swift\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"/// Listens to login events.\",\"marks\":[]}],\"key\":\"75c34428d31240b591633b61612d87e5\"}],\"key\":\"a156a0ba85cb41509f83d753f05d1de5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"public protocol SyncLoginListener {\",\"marks\":[]}],\"key\":\"48a380dd1f87425d9d194a8378ca6af1\"}],\"key\":\"53ef634ffd4b4762a521fe033b74d9e1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Called on a successful login.\",\"marks\":[]}],\"key\":\"58aa76452ff04f5cab9e8635bf7ff639\"}],\"key\":\"edd385daa0d843749e2c2f28ca217587\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// \",\"marks\":[]}],\"key\":\"bd47b91396a848b6b9a845ef4f06544b\"}],\"key\":\"938e4cc9d71743d0803e0433d20eafed\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// At this point the connection to the sync destination was established and\",\"marks\":[]}],\"key\":\"91009c04ddad4674b6455be223de11c9\"}],\"key\":\"495a7073b7374742b3ee165a6b8a132c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// entered an operational state, in which data can be sent both ways.\",\"marks\":[]}],\"key\":\"a076e542ba1e479d89991b8686547477\"}],\"key\":\"80129fb4daea4d668cc81338ecb43585\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" func loggedIn()\",\"marks\":[]}],\"key\":\"167705472f3e44f0aec6a82a393db088\"}],\"key\":\"d367ae9fef154f1c9f31f8c79e43dbca\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"4dd5f1b537a7414ca2e325b5d956b212\"}],\"key\":\"3d316b2906f44b4697b92362cc22efd5\"},{\"object\":\"bloc"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"k\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Called on a login failure with a `result` code specifying the issue.\",\"marks\":[]}],\"key\":\"725b1e2a2d894c5ea6688521097d31b0\"}],\"key\":\"abe5d47d82cd4bf4adf0ad9ef259874a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" func loginFailed(result: SyncCode)\",\"marks\":[]}],\"key\":\"5ba310a7ba444ccf886bd192f55f9db5\"}],\"key\":\"cbfd606f200c471fabab881557301eda\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"4ac593ac5d7445da9c1e11a579562e44\"}],\"key\":\"5887b9c31db24b1dbda906ae382a75db\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"f60ca75456094b82b8844e94177d8f8e\"}],\"key\":\"8ad6f422073942d7b0bbd768863ae721\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"/// Listens to sync completed events.\",\"marks\":[]}],\"key\":\"8f52de81f6e04f1389305354b5327dd7\"}],\"key\":\"00bdd5e640e24a0580f02f3439386e9f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"public protocol SyncCompletedListener {\",\"marks\":[]}],\"key\":\"73030cb8487647fbbcd394c2a35343a1\"}],\"key\":\"bfb1671cf0db43fc8836ee8061d12937\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Called each time a sync was \\\"completed\\\", in the sense that the client \",\"marks\":[]}],\"key\":\"b949268b82b94353b444e13977c50feb\"}],\"key\":\"c4dc01d0b644414d9f7be99b93409048\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// caught up with the current server state. The client is \\\"up-to-date\\\".\",\"marks\":[]}],\"key\":\"c124d8401ad2460cb315a3efa17f547d\"}],\"key\":\"9fd2e5ad6d3e4585aa33c54f31d67d90\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" func updatesCompleted()\",\"marks\":[]}],\"key\":\"95e78cacc24649ab9a79846e2905d6cc\"}],\"key\":\"19d76b39e842419b89547cb8a82cc9b5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"f99d0219a0974f89a9bb69144e3f9f05\"}],\"key\":\"4077a0af4935473f8c1186c530458c0a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"1be6403a0eec416bb41da62cc1e54c35\"}],\"key\":\"ad4efd35da2e4b53a2b1c84947bc6965\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"/// Listens to sync connection events.\",\"marks\":[]}],\"key\":\"f4c90357bd404c25ad4c983784418a12\"}],\"key\":\"0716c9572d734a49ae2e95108e92bb8c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"public protocol SyncConnectionListener {\",\"marks\":[]}],\"key\":\"553996bb892c458a84ae95fa43224006\"}],\"key\":\"cb45642729a44a37a35024cf656f5abb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Called when connection is established; happens before an actual login\",\"marks\":[]}],\"key\":\"ce832756451541a48c32865fd48bccd6\"}],\"key\":\"955e71ae1b14461d9a1d4490275c198c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" func connected()\",\"marks\":[]}],\"key\":\"926ea2d359574f38adbf00f9f0f5df9a\"}],\"key\":\"01490b676d6a49dc9f5443cff838b4a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"2f1b280fb4bc4fdfbf83dcf0b7472551\"}],\"key\":\"5002e7360d26428f86e305fc3d"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"7f0d57\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Called when the client is disconnected from the sync server, e.g. due to a network error.\",\"marks\":[]}],\"key\":\"43775e64f3994cd4a0c239fe5b4bdea3\"}],\"key\":\"e09a22b0d91240168cf8132cff181b64\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// \",\"marks\":[]}],\"key\":\"62f3d4d09f4842de81e25255059bea62\"}],\"key\":\"0f0e2be1a90c4d80bca55ead522cd909\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Depending on the configuration, the sync client typically tries to reconnect automatically,\",\"marks\":[]}],\"key\":\"3ee1af03513e45aba7c044d211989942\"}],\"key\":\"6204270bef524b9eac2797d7bdce863f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// triggering a `SyncLoginListener` again.\",\"marks\":[]}],\"key\":\"9f8b64b228b241edacc63707f2c3e9aa\"}],\"key\":\"3a933cce76044887aab8f089dc4ef386\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" func disconnected()\",\"marks\":[]}],\"key\":\"19f8ecadba074d5b85e96db863a72498\"}],\"key\":\"6d297d21a36e4450abcb73caf051d992\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"64f09193ac244df7babcd23059547c22\"}],\"key\":\"50d019d767ae4056bea07e26ec4a125a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"694a8261ea764df7bcd2882f791d1d2d\"}],\"key\":\"132632b79abc4343a090e0ad2d321eee\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"/// Listens to all possible sync events. See each protocol for detailed information.\",\"marks\":[]}],\"key\":\"04130c7ea68d44f5b314a8a8a49bb550\"}],\"key\":\"92c1b65abc5744968c6ed9a7d8cab5d2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"public protocol SyncListener: SyncLoginListener, SyncCompletedListener, SyncChangeListener, SyncConnectionListener {\",\"marks\":[]}],\"key\":\"208268295de04273b4be40aff9d5a3b1\"}],\"key\":\"4a75c2366fdc431ab4a178a4d268d55f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"5ae87bbabe4345459f6c9b05de407675\"}],\"key\":\"b42c833bc9d342f4b9e3d391bb9ccb2a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"4a0f51e480a8415f9905ce566ef99e51\"}],\"key\":\"aa7ddd082e304528a758f29ef86d3f9c\"}],\"key\":\"240ef4b3d1804f16a698411834f8ea12\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"It's possible to listen to sync-related events on the client. Use the following \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncClient\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" getters to connect to a stream:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ul\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003edi"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"v]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"Stream\u003cSyncLoginEvent\u003e get loginEvents\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" - such as logged-in, credentials-rejected.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"Stream\u003cvoid\u003e get completionEvents\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe when synchronization has completed.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"Stream\u003cSyncConnectionEvent\u003e get connectionEvents\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" to observe connection events.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Note that these streams don't buffer events so unless you're subscribed, no events are collected. Additionally, don't forget to cancel the subscription when you don't care about the information anymore, to free up resources.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"final client = Sync.client(...);\",\"marks\":[]}],\"key\":\"8491c140619147ff81576044a4ccf5d4\"}],\"key\":\"f4bf7e26c0644af5aaf3088576af98d6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"final subscription = client.loginEvents.listen((SycnLoginEvent event) { \",\"marks\":[]}],\"key\":\"0edff3ff41b84d59bfa73d6d546c7578\"}],\"key\":\"aaeeeac4c43844fd91fc2caeaf56b9c8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" if (event == SyncLoginEvent.loggedIn) print('Logged in successfully');\",\"marks\":[]}],\"key\":\"45a912d5eb7e4d87b84868f112deb510\"}],\"key\":\"899ada7d08ed44f4a3139b7d10177a23\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"});\",\"marks\":[]}],\"key\":\"b7538ab9f4574609a9e44af64dd6198a\"}],\"key\":\"a41bcffbe04448dd994f7e5a22fc508f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"5cac8b4d4ceb43009976674e105fd3df\"}],\"key\":\"d3df10888f9443f7979fbe59e49530db\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"client.start();\",\"marks\":[]}],\"key\":\"f1a572019ee54ee8ba141a073c560ce1\"}],\"key\":\"940a51bc89514351a87cbe9feb99b4db\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"cb43e1e6f2734a5ebea341c877d7a181\"}],\"key\":\"f4ae1efe87984acabfb6efea1cb3f23c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"...\",\"marks\":[]}],\"key\":\"c79ced3b027f4574b84d06a39c9e0875\"}],\"key\":\"3a6839a9aa724658ae5759ce0b39406c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"f3fb36e2a3934cf799cedf3f026fe98e\"}],\"key\":\"b74975e8ce4b4b769efe8e062f79d397\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// don't forget unsubscribe if you don't care about the events anymore\",\"marks\":[]}],\"key\":\"4ded391e9abd464aa81be43a3dc34415\"}],\"key\":\"492ed5edbfdf402493e10415eb80d6e6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"subscription.cancel();\",\"marks\":[]}],\"key\":\"8d4397d9a7ed4aadb2b7e884a9cc5da9\"}],\"key\":\"6b80691732c842ddb7edd947be0a6f06\"}],\"key\":\"8795e6968386443da4dcf884a6caeb59\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-tran"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"sparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"struct LoginListener : public obx::SyncClientLoginListener {\",\"marks\":[]}],\"key\":\"21205fd78c2343d7931500bb1b682cdd\"}],\"key\":\"045495e1f6374bf4982ac6b038554800\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" void loggedIn() noexcept override;\",\"marks\":[]}],\"key\":\"a135fca3900148fb8b3326492f57e9cd\"}],\"key\":\"1ef808859d2447a38d2689b0d3d20017\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" void loginFailed(OBXSyncCode code) noexcept override;\",\"marks\":[]}],\"key\":\"82edf7094fe84bbcaeaadd3e4ae49f06\"}],\"key\":\"009e09674ded4588b4837c1c73233258\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"5bd206137c754129ac9b842614d71a77\"}],\"key\":\"9c1dad1905ec4e06b4b1b4425b2a468a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"b944e19109e44ccb81d1acd6e2bbfe2b\"}],\"key\":\"b2c3111680bb4509b108071adb2891a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"auto loginListener = std::make_shared\u003cLoginListener\u003e();\",\"marks\":[]}],\"key\":\"da9e0a46479f4e60a0b9ba6dc882c870\"}],\"key\":\"f862426b8a9a4430bd827482c9a7c5ef\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003esetLoginListener(loginListener);\",\"marks\":[]}],\"key\":\"dcb4918d6a6f4d89ae3e65fe2099ef27\"}],\"key\":\"18ec9ccecf2c479099c1ec81ce19089a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"6bbbcb6643684db4b27c412e615b07ca\"}],\"key\":\"68f7c6ca6e5c4451bd27f89f07aeba70\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// there can be only one listener of a given type, so calling again with a \",\"marks\":[]}],\"key\":\"3edf18195a3a42479941c4759ba994ad\"}],\"key\":\"4469e95f8a3d413dba8c258ee4f9eac8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// different callback changes the listener (un-assigns the previous one)\",\"marks\":[]}],\"key\":\"22d4ae74333b44f2a9abb1eb471d1a56\"}],\"key\":\"0d571b9e229243778fa18e6dc8d56d05\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003esetLoginListener(...);\",\"marks\":[]}],\"key\":\"4a4c654f51a44057a158a812825dcbe8\"}],\"key\":\"6f6533127904473a989c04a9a6fe6210\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"242ea87cd59c4b3db4d731d3b418c553\"}],\"key\":\"10b74ae82c3f49d6b7bf2b8e9447bfd3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// reset (remove) a listener\",\"marks\":[]}],\"key\":\"990774283df1430bab0132e462aec555\"}],\"key\":\"b90bb3e57ae04b8b9b0ff33bb2790f94\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003esetLoginListener(nullptr);\",\"marks\":[]}],\"key\":\"6e481d70f16f45de89a0959131e3ecd7\"}],\"key\":\"7847fbba33174e66b93d3b61a83d17eb\"}],\"key\":\"9481f7ad89634788bb3b7eb9233a45eb\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\""])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void login_listener(void* arg) {\",\"marks\":[]}],\"key\":\"538070c10b784510a6f58e1e66292db2\"}],\"key\":\"db1b2333f766452e80a1399787468406\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (*(int*) arg)++;\",\"marks\":[]}],\"key\":\"6ceeb2496ba04152a22732c40db9e1bf\"}],\"key\":\"8e81721417404058a4efa6ff4e8d27de\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"726a3963dce74c14a170f7d5693140eb\"}],\"key\":\"368b9943a6da461fbad2d4a7dc3a60d5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"70865a4a856740318c0ab4e236a08a2d\"}],\"key\":\"1fa7bbd1f2f0494484f81f285d4d34ba\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void main() {\",\"marks\":[]}],\"key\":\"788824cd5f5d43a6b2395e6e10e008eb\"}],\"key\":\"1733111b336a4950861631149fcac1b0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ...\",\"marks\":[]}],\"key\":\"99e5174deb5d400b93a947ea21ceeb8c\"}],\"key\":\"28b5429490764c679b1e84f28415b4c6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" int login_listener_arg = 0;\",\"marks\":[]}],\"key\":\"52cca9eb51fe46ccbdb96290d63115e5\"}],\"key\":\"649d77935c394b23b8985497e5f297da\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" obx_sync_listener_login(sync_client, login_listener, \u0026login_listener_arg);\",\"marks\":[]}],\"key\":\"cb5dad456e6b44808a298502b31bdfe9\"}],\"key\":\"900134722d4e4600845e65d7fdd127a7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"093f1e88b2cc43f1ab7e681191a5f6b5\"}],\"key\":\"c1f3c49927c04040abd9a4db5cf63a37\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"41be08dae97f4bde929e791963b11431\"}],\"key\":\"c516e29749af4008bca09b379fcdedad\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// there can be only one listener of a given type, so calling again with a \",\"marks\":[]}],\"key\":\"b125d423ffd24d429e82f7a6b9b31016\"}],\"key\":\"72cfc4265a7f4b849258783d486d63f7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// different callback changes the listener (un-assigns the previous one)\",\"marks\":[]}],\"key\":\"ec98b9acce2d4deb9b4524cac3f02a"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"70\"}],\"key\":\"92329ad808f04836a9d439d808ee7cfe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_listener_login(sync_client, ..., ...);\",\"marks\":[]}],\"key\":\"5bac615f299242c18ec9892cbf76b34d\"}],\"key\":\"de225520da9b4ea684e4608222ccc07e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"0d19f0cb385f403c942688b28045f568\"}],\"key\":\"5def51bdda4b43dc90206fabd1c40c19\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// reset (remove) a listener\",\"marks\":[]}],\"key\":\"08ae9a8fa90a4ce78fe596cc910807fb\"}],\"key\":\"ce4e7841b81a447699e03e4153c262aa\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_listener_login(sync_client, NULL, NULL);\",\"marks\":[]}],\"key\":\"8814f53879324ef0a4ba7f823a570a34\"}],\"key\":\"276fca695ace42f38e0e066216d72d75\"}],\"key\":\"6510746230f2472388961426cf3c5835\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.SetLoginListener(func() { println(\\\"Logged-in\\\") })\",\"marks\":[]}],\"key\":\"5a6fad4124cf45e79ffaf44b81938a8d\"}],\"key\":\"d8671da2b5f542a3ab0b6ba2ab8cdb45\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"23b8ea8a58174027a5a03210ba226a10\"}],\"key\":\"5f71e91232e24b5e8ca3ff6083739094\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// there can be only one listener of a given type, so calling again with a \",\"marks\":[]}],\"key\":\"9cf26c7aa21748fdbf3a8607342b2f56\"}],\"key\":\"d2832b77df83479283c15e4372ee0a48\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// different callback changes the listener (un-assigns the previous one)\",\"marks\":[]}],\"key\":\"fcd43c737a204e7d9826a3abc4b04e83\"}],\"key\":\"c37a287ea41d4d908ca011c847666663\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.SetLoginListener(func() { ... })\",\"marks\":[]}],\"key\":\"a8fbf513bbad40be9bbd9e5c3f388a1d\"}],\"key\":\"08ed772aacde485d91e31aa0d7211a9a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"7f248435831e4f95bd93b7eee05900d1\"}],\"key\":\"c769cf084b5b4a3db7039bde0f9424f6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// reset (remove) a listener\",\"marks\":[]}],\"key\":\"50710a3c9"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"cd441408ddfd3416aaa0a43\"}],\"key\":\"b1b2f15a99b54a23805cb31c54f929b3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.SetLoginListener(nil)\",\"marks\":[]}],\"key\":\"22b067d41fed43e8826411a1bd04911b\"}],\"key\":\"5e0afdd0fee84964a8034056f4652981\"}],\"key\":\"c57934d40be447f5bf58f25f31310838\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"advanced\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h2\",null,{\"id\":\"advanced\",\"className\":\"text-3xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#advanced\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-tight\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Advanced\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"listening-to-incoming-data-changes\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"listening-to-incoming-data-changes\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#listening-to-incoming-data-changes\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Listening to incoming data changes\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"For advanced use cases, it might be useful to know exactly which objects have changed during an incoming sync update. This is typically not necessary, as observing a box or a query may be easier.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"On each sync update received on the client, the listener is called with an array of \\\"Sync Change\\\" objects, one for each affected entity type. It includes a list of affected object IDs - the ones that were put or removed in the incoming update.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-10\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"b72ef652e0fa42a0a3630afbd29af6bb\",\"tabs\":[{\"id\":\"java-9\",\"title\":\"Java\"},{\"id\":\"kotlin-9\",\"title\":\"Kotlin\"},{\"id\":\"swift-9\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-9\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-14\",\"title\":\"C++\"},{\"id\":\"c-15\",\"title\":\"C\"},{\"id\":\"go-9\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":["])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Use \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"changeListener(changeListener)\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" when building the client and pass a \"}],[\"$\",\"$57\",\"3\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncChangeListener\"}]}],[\"$\",\"$57\",\"4\",{\"children\":\" to receive detailed information for each sync update. Or set or remove it at any later point using \"}],[\"$\",\"$57\",\"5\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncClient.setSyncChangeListener(changeListener)\"}]}],[\"$\",\"$57\",\"6\",{\"children\":\".\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncChangeListener changeListener = syncChanges -\u003e {\",\"marks\":[]}],\"key\":\"ee64412c615f41e8b322d0a45f346e44\"}],\"key\":\"2f1154aa8c284cfeb1c6baab86c202eb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" for (SyncChange syncChange : syncChanges) {\",\"marks\":[]}],\"key\":\"6a37b25a573c46019a6812ea5000a21d\"}],\"key\":\"977619cb5a2548d09d8e1e6b73461029\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // This is equal to Example_.__ENTITY_ID.\",\"marks\":[]}],\"key\":\"aa443fa7abec451ea6389687f7ca3b77\"}],\"key\":\"2cbc96622c8a417aba6189f273ae3c77\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" "])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1," long entityId = syncChange.getEntityTypeId();\",\"marks\":[]}],\"key\":\"d1b862bd181c4c988d5da95d322c7667\"}],\"key\":\"2a4e0a8f71054beda0c618194e7506c0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // The @Id values of changed and removed entities.\",\"marks\":[]}],\"key\":\"c761aacd5504423ab755fd3c32cd663d\"}],\"key\":\"188eff33dd384f348be694789220d306\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" long[] changed = syncChange.getChangedIds();\",\"marks\":[]}],\"key\":\"335d9540f9884a8faa32adb298b3efdb\"}],\"key\":\"891893fe59a74c7696d9b8655f6d7a0f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" long[] removed = syncChange.getRemovedIds();\",\"marks\":[]}],\"key\":\"443214c43f874ca09d457bd71d50db62\"}],\"key\":\"2c9d0b0632774fcf8c49f81766a81620\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"2a60b0020e314887ab8a5bdf1a1281d4\"}],\"key\":\"c84f23118c65404db8e1831f0b9db5ea\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"ae16f3c619b84232a9c2c2e62df8f804\"}],\"key\":\"0de0d3411eb64dbc8f9318cfaf4d3c1b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Set the listener when building the client.\",\"marks\":[]}],\"key\":\"35e591c3ee924c2298773ac5551071ea\"}],\"key\":\"82c32a86069a475fb2f8b8063caaa23d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncBuilder.changeListener(changeListener);\",\"marks\":[]}],\"key\":\"93cf4e4a727c4925b6596905978c8f8d\"}],\"key\":\"cc0f51a285e9427d864f2f217ceb4a5f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Or set the listener later.\",\"marks\":[]}],\"key\":\"8a272753f6354ed69e2ec9ae63a2fa0f\"}],\"key\":\"6ddb28ef344a48b4830b228098c0e8b3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncChangeListener(changeListener);\",\"marks\":[]}],\"key\":\"53a5d39e45654cec94eb1e7c8c8eea8a\"}],\"key\":\"2a28702aca124bcc98e7980c1daec8a4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"3814e204aeb34704b4e02491998ee97a\"}],\"key\":\"d25cebbcd89a44f08846572bf9ddf03c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Calling again replaces an existing listener.\",\"marks\":[]}],\"key\":\"9561d8ddb77d4a61a0dc179726d44433\"}],\"key\":\"8933fa7e6aae47a4881044ee7500aa2c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncChangeListener(changeListener);\",\"marks\":[]}],\"key\":\"7a52716319d2488585c0301c22b298e6\"}],\"key\":\"e03c68caa0784d79b98d31d370da5926\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Remove an existing listener.\",\"marks\":[]}],\"key\":\"e1c8ae58cd2543a29e4234ff200a11f1\"}],\"key\":\"44bf3af5e02740f4a0d6a8d4aa7b2a75\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncChangeListener(null);\",\"marks\":[]}],\"key\":\"6da29b6438884daf941cedfaaab0f719\"}],\"key\":\"3d1bffc61e9e4288b887d9bd083542ac\"}],\"key\":\"0207004846cc4bb886beca82650b53e9\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1," decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Use \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"changeListener(changeListener)\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" when building the client and pass a \"}],[\"$\",\"$57\",\"3\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncChangeListener\"}]}],[\"$\",\"$57\",\"4\",{\"children\":\" to receive detailed information for each sync update. Or set or remove it at any later point using \"}],[\"$\",\"$57\",\"5\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"SyncClient.setSyncChangeListener(changeListener)\"}]}],[\"$\",\"$57\",\"6\",{\"children\":\".\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val changeListener = SyncChangeListener { syncChanges -\u003e\",\"marks\":[]}],\"key\":\"c4a0049cf7324f099b8d588adb896d50\"}],\"key\":\"40615e83dbf94384a61c9086753fcdbd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" for (syncChange in syncChanges) {\",\"marks\":[]}],\"key\":\"5a992362586a4c5185d06a686ad5bdce\"}],\"key\":\"6779b9eebad04b328a79c28662a9c9c1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // This is equal to Example_.__ENTITY_ID.\",\"marks\":[]}],\"key\":\"1a5550a4e9d74e77a89a5632f067702a\"}],\"key\":\"f51cca6d4c654d97a80d6005c0e4ba6d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" val entityId = syncChange.entityTypeId\",\"marks\":[]}],\"key\":\"85bf7649728748deaec4939950a3e884\"}],\"key\":\"f58dd8ae87e64d07a1842a"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"5ba6118fce\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // The @Id values of changed and removed entities.\",\"marks\":[]}],\"key\":\"ab4d113f691f45cfb276dbf8aba85206\"}],\"key\":\"782d957133614c1cb66ad9a64eca99e8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" val changed = syncChange.changedIds\",\"marks\":[]}],\"key\":\"451013aa3e454af0b185aff2d795f3a8\"}],\"key\":\"9c865ba01ce14f02bcc73129b99fc5e6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" val removed = syncChange.removedIds\",\"marks\":[]}],\"key\":\"7b2b6d9247ae40a4ab5d66c1d17eec7c\"}],\"key\":\"a1e03a77e7d945b08e7838c300376930\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"bbba96f370864cc2be13899f5224cd65\"}],\"key\":\"6fbe10500084436d87c0abe62388be30\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"cf49238c0c894759af8baa7603544c3e\"}],\"key\":\"cd05dd2de7b94b14b22f1584868a4a4e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Set the listener when building the client.\",\"marks\":[]}],\"key\":\"1926050e768b4cfab9f4d98131671ce8\"}],\"key\":\"646c5641a2e54bee80759dfc2ec77900\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncBuilder.changeListener(changeListener)\",\"marks\":[]}],\"key\":\"15229395d6e849878424f1bcdc37b3f5\"}],\"key\":\"527b532baec844a4aaa657f38b409a75\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Or set the listener later.\",\"marks\":[]}],\"key\":\"e70f55a317a94ac98c07c07b38dad568\"}],\"key\":\"cd198faa46fd4411a40c2834f6052775\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncChangeListener(changeListener)\",\"marks\":[]}],\"key\":\"73020f1a68774947b214e7edd034de93\"}],\"key\":\"202a41a3ae2b47b5959dcf133cf480f1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"5eec70cbc6494510b8fbb121f8db0a1e\"}],\"key\":\"307f07253c6f4f60bec7a59a898049fe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Calling again replaces an existing listener.\",\"marks\":[]}],\"key\":\"1ab1f947cf6344bf89ce8444f5cdc995\"}],\"key\":\"0687b2e8dca84843a459573e4f8779cf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncChangeListener(changeListener)\",\"marks\":[]}],\"key\":\"7a90e67f96884800835e1aa6ea3a0ec1\"}],\"key\":\"913e42a53a4f49b19a8cfd50e3a702c5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Remove an existing listener.\",\"marks\":[]}],\"key\":\"b3cd49089c1b49ff956f6a50e4cff5b5\"}],\"key\":\"9ec2c461947148e89c8163f0be03b527\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.setSyncChangeListener(null)\",\"marks\":[]}],\"key\":\"a5f2c61be9524b5bb295b1bf7af7d9bf\"}],\"key\":\"193b12e0c8274d229e4f09dcb1bd19c3\"}],\"key\":\"1061071c04784ac4a1aea1df57d68643\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md "])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"i\",null,{\"className\":\"font-italic\",\"children\":\"Coming soon!\"}]}]]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Use \"}],[\"$\",\"$57\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"Stream\u003cList\u003cSyncChange\u003e\u003e get changeEvents\"}]}],[\"$\",\"$57\",\"2\",{\"children\":\" on the SyncClient to receive detailed information for each sync update. Make sure to cancel the subscription when you don't need the information anymore to clear up resources.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"final subscription = client.changeEvents\",\"marks\":[]}],\"key\":\"8208c4c7b7b546a49831a2acc0d1ff65\"}],\"key\":\"56d66984ad864f7c858d960dbcc29a8e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .listen((List\u003cSyncChange\u003e event) =\u003e event.forEach((change) {\",\"marks\":[]}],\"key\":\"58e962d9cc4743a19fd5f6cd10aa5d99\"}],\"key\":\"713f5808c69148be8a3ce179fe65e1e6\"},{\"object\":\"block\",\"type\":\"code-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" print('${change.entity}(${change.entityId}) '\",\"marks\":[]}],\"key\":\"4dfdd5dfd94548b7bb7e457447fac45a\"}],\"key\":\"a8162acd313846d88364eca0422ad877\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'puts=${change.puts} removals=${change.removals}');\",\"marks\":[]}],\"key\":\"bfbcae1191dc49da9f550ac499520491\"}],\"key\":\"8d395d3fb97e469da4f3b0d4bca78075\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }));\",\"marks\":[]}],\"key\":\"9faf62ebace94bbe91ead4223f0aca34\"}],\"key\":\"6b7e312a5e9f48c49ec1eeba00abbcbe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"32c60d66ea304f739eb0aa8ba79f6410\"}],\"key\":\"b50b1235011448c69d5a4974e42fcacc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"...\",\"marks\":[]}],\"key\":\"ac15d8953ecf46fc92a7d4be5486044f\"}],\"key\":\"7111d8142307400a9899c0cef31c931f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"e4dace1508894a3682adc3967aee633b\"}],\"key\":\"762b54fe69914129a09aec6ec9b94e25\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// don't forget unsubscribe if you don't care about the events anymore\",\"marks\":[]}],\"key\":\"d8c5795c77d644c2befeb2b059958582\"}],\"key\":\"333221f404744c568f20f68301cc87e7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"subscription.cancel();\",\"marks\":[]}],\"key\":\"50f31b2c106b4fd299b7d44624899656\"}],\"key\":\"8db4a31f9e2b4fe08d7bbb038b0bad12\"}],\"key\":\"f2fdfaa3b0794506b5393f6db5632b57\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"/// Sample listener collecting all puts and removals\",\"marks\":[]}],\"key\":\"3c13ab76392440668475bebb6a3a1040\"}],\"key\":\"fae8ffe6c45749908bdfbb71d1dbfa2d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"class StatsCollector {\",\"marks\":[]}],\"key\":\"16f8456dab9246bc929758eddd806c21\"}],\"key\":\"5b883681dc4d4e8183061a33f124fd5e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" struct EntityChanges {\",\"marks\":[]}],\"key\":\"4d53d32b68994d6ba8e72915ccbc5ccb\"}],\"key\":\"89b15912f68f4e68b648199c637744b9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" std::vector\u003cobx_id\u003e puts;\",\"marks\":[]}],\"key\":\"bede6acbe672445c8a89783af1f87149\"}],\"key\":\"fa6838a0465f43d7a1bead842d67adeb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" std::vector\u003cobx_id\u003e removals;\",\"marks\":[]}],\"key\":\"f9582ca871584b7db5a6885f9c97da79\"}],\"key\":\"a88cc21afccf4544bce47e78411673bb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" };\",\"marks\":[]}],\"key\":\"3c8be7e7c1794ddfa2ba521b81bb9a6c\"}],\"key\":\"363db3a85fa94ce983ada6432d4f82a0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" std::unordered_map\u003cobx_schema_id, EntityChanges\u003e statsPerEntity;\",\"marks\":[]}],\"key\":\"bd880010bbd74ed685f39b197bb39742\"}],\"key\":\"ec782faaabf942e68fb4e8a39c27d82a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"32e1624899894822b7b7f68213f5916d\"}],\"key\":\"cf8fb5d5bcf1465684e195100bd74302\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Receives changes on the object instance, forwarded by the static forward().\",\"marks\":[]}],\"key\":\"900a0e0d21294c92a335a15c7a3893df\"}],\"key\":\"7a7cc66e1b1d40ae9037b0f45b5b0021\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" void onChanges(const OBX_sync_change_array* changes) {\",\"marks\":[]}],\"key\":\"3c63723155eb4b42b35b906977763a4b\"}],\"key\":\"35ecb416ffae45c8992154c1debe6336\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" for (size_t i = 0; i \u003c changes-\u003ecount; i++) {\",\"marks\":[]}],\"key\":\"e4efca5389794631b220b5e83ae79404\"}],\"key\":\"ccc0dc9fead847e691c914f5d8e29134\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" const OBX_sync_change\u0026 change = changes-\u003elist[i];\",\"marks\":[]}],\"key\":\"ca1234f7ab194bdbb82ca428aeee9cb2\"}],\"key\":\"a7dfaea2d38a421cae64ef284337f824\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" EntityChanges\u0026 stats = statsPerEntity[change.entity_id];\",\"marks\":[]}],\"key\":\"3843c759f36d46d7896a7b3a7c156752\"}],\"key\":\"2e27015df24c48ed9ef31f51c4687eb9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" if (change.puts) collect(change.puts, stats.puts);\",\"marks\":[]}],\"key\":\"36848269287d49048d9443f45f646ac9\"}],\"key\":\"790e0fc7b17c4c47b1254106b6adda93\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" if (change.removals) collect(change.puts, stats.removals);\",\"marks\":[]}],\"key\":\"9be9fa0e7add4df29c0ed0ce9c56a025\"}],\"key\":\"9443898669cc4b749a5407377607f2dd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"fa5ac1b3177742be8cd681db82f90482\"}],\"key\":\"55b558a82421468a8b5c4b654e1cf5fb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"d710ff257fe34e3297e9c7c832d24166\"}],\"key\":\"9255ef9c5aec456cab23d8afa95d617b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"c252bbc999324c4db2855bd5c7eb81d3\"}],\"key\":\"41f2b89f180e406d80f0cf55d91a9ba5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Update given vector by adding all ids from current change list.\",\"marks\":[]}],\"key\":\"b422a2ba"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"462c49a488ed1df1ec4ac7d2\"}],\"key\":\"f3f229a0d412455386e051f40e752b80\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" void collect(const OBX_id_array* ids, std::vector\u003cobx_id\u003e\u0026 targetVector) {\",\"marks\":[]}],\"key\":\"dd349bba9a8047c1b2e21d9b330c2d17\"}],\"key\":\"562a94b4ba994325a4721728c105e020\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" targetVector.reserve(targetVector.size() + ids-\u003ecount);\",\"marks\":[]}],\"key\":\"6f560cf23f2e4769b311f171687bbe91\"}],\"key\":\"287e710a39b64fd0bf45e17e5a324426\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" for (size_t i = 0; i \u003c ids-\u003ecount; i++) {\",\"marks\":[]}],\"key\":\"cec6daa9316a49a4bfe9ab6e4a40408f\"}],\"key\":\"a81d2f04c716421aa9e228605d5f23c1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" targetVector.push_back(ids-\u003eids[i]);\",\"marks\":[]}],\"key\":\"54be4371b32049a0870bd3e870be99fe\"}],\"key\":\"4f9f28fb92c846d1bd8b2d39148e6213\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"cdb3cc115aaa48639e5f50606c7cd290\"}],\"key\":\"eae01795bcf44d03bdd7e4edbcb8ab34\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"e84015e543bb48caa7b55afd030fb841\"}],\"key\":\"7d07bcf7851c4b15a85c78d626e1b8a5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"180e0530e60d453289403ab94bbaaa28\"}],\"key\":\"1459fada822a460ea2c71b50e3c35665\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"public:\",\"marks\":[]}],\"key\":\"b648f58b01e54627bde4bebb6fb0867a\"}],\"key\":\"a3e34b2de9c34856b4affa9943eddaaf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" /// Just forwards the C-callback to the instance of this class.\",\"marks\":[]}],\"key\":\"2f073a99db154e8f910075e35199b307\"}],\"key\":\"47bf59726dd044e3adfc67a78dd9c179\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" static void forward(void* arg, const OBX_sync_change_array* changes) {\",\"marks\":[]}],\"key\":\"bf49bc38b5ea4775ad4ae48d611be9b3\"}],\"key\":\"642977ef95d4427e866176674a666297\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" static_cast\u003cStatsCollector*\u003e(arg)-\u003eonChanges(changes);\",\"marks\":[]}],\"key\":\"265ff06385b946e7b11a7741052fad51\"}],\"key\":\"ca536cfa3aa84cbd9e9a776b38d503a2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"90f50ba0e61d4239b16cbcfc3b2ec28a\"}],\"key\":\"ec49bf056d954e47b562a272d24baee7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"25e8e82d9b6d43b19e9a2dc59653335c\"}],\"key\":\"59bd071470fe4139b2383f7aad3bc911\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"66db7c48f73e44c5b2dead753664b7f2\"}],\"key\":\"bea7f2fd738a4e848b09e505c25ec117\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"07f7427de2454a79b6cf3b4d8cd86093\"}],\"key\":\"17e4bf35574f4256ae35eeb7eb3611a6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void main() {\",\"marks\":[]}],\"key\":\"e2f037b99b81430cb1a18d3d20b712e4\"}],\"key\":\"07eda9d9b68"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"84c17b56a1668f4e904c5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ...\",\"marks\":[]}],\"key\":\"93cbc036401c49b6a19f4e3cd137fc9f\"}],\"key\":\"a21c5e6e674f4164b4f2ee2f52943e19\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" StatsCollector collector;\",\"marks\":[]}],\"key\":\"532f11df56c446bf88038ee6896ded8e\"}],\"key\":\"81524020c0d34c6b84150161e1eba154\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient-\u003esetChangeListener(StatsCollector::forward, \u0026collector);\",\"marks\":[]}],\"key\":\"42a2e2e5df974785ad9a4cec37fbfaf8\"}],\"key\":\"9686ab9b2b3f44f1a59d9311a6d2f018\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"aae4268f75b04b179dfd8d7744daa81d\"}],\"key\":\"d78b2a7aec844e838b0b869e96037ab8\"}],\"key\":\"7599ea851ba84c98a4b1c1af7d2ffe6f\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"c\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void on_puts(void* arg, obx_schema_id entity_id, const OBX_id_array* ids) {\",\"marks\":[]}],\"key\":\"28a35b18f75741adb1eceda0794fc3d3\"}],\"key\":\"d072d44986504a9f922c0ff252c5a1ee\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" //...\",\"marks\":[]}],\"key\":\"b6f7f2b53d344adebef47f811976c323\"}],\"key\":\"bc6b9d3642504394a4a49002f3f47149\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"44b284fa66d147bcaf78b09121568680\"}],\"key\":\"0b4b0161574440ec84a3627e763b9b13\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"0a2fa096c6e94dcbb97776ed9e211887\"}],\"key\":\"d375d34fe3d34210833662de3d2ca83b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void on_removals(void* arg, obx_schema_id entity_id, const OBX_id_array* ids) {\",\"marks\":[]}],\"key\":\"6af59fc2f1d840e9928a714ccad791da\"}],\"key\":\"030a40ebe4594144a50d51ad83d20d48\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" //...\",\"marks\":[]}],\"key\":\"3d5d20c5d5a944899ac2ea81d90575e8\"}],\"key\":\"8e44da72ec05454abd80968bd6c10a30\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"bbe8382d7e2b4b8eb642c073e711a7e6\"}],\"key\":\"b10761afa9e84816a843f63a26ac8047\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"c1588c56cad948a2beb36337bd110b93\"}],\"key\":\"2212913295a7413eb9eebd7f64f29eb3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void change_listener(void* arg, const OBX_sync_change_array* changes) {\",\"marks\":[]}],\"key\":\"10e782ec7cfb43bdaabfdbcd174b642c\"}],\"key\":\"933cdd7ddbae47dcb52fc0feee345bf6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" for (size_t i = 0; i \u003c changes-\u003ecount; i++) {\",\"marks\":[]}],\"key\":\"a798ea5b9b8a4d7089cc2d11cd3b5365\"}],\"key\":\"e62925c3650a4d29a1221e11df1ea7fd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" const OBX_sync_change* change = \u0026changes-\u003elist[i];\",\"marks\":[]}],\"key\":\"85f94bed0d9e4f7d9f7ee5d42defe1d9\"}],\"key\":\"c0061694ccbe4c9badeafbd581102fd2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" if (change-\u003eputs) {\",\"marks\":[]}],\"key\":\"777aef57b3934dfd99b8e88190dec77a\"}],\"key\":\"633925f6ed8b4e72ac35f67bb6753196\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" on_puts(arg, change-\u003eentity_id, change-\u003eputs);\",\"marks\":[]}],\"key\":\"79d888a4cf9745f29409566cbcc9ca86\"}],\"key\":\"a19f5841d07941fabb752595b538b8a8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"ce40d232ccca4753a1002ce72ab11b3e\"}],\"key\":\"c809bd56c9ae45288aa5bb03840aee1a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" if (change-\u003eremovals) {\",\"marks\":[]}],\"key\":\"3551856008ab4dd2b9afd02f0816dd0c\"}],\"key\":\"979a7c630d664c83a2596e8fa7ff1277\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" on_removals(arg, change-\u003eentity_id, change-\u003eremovals);\",\"marks\":[]}],\"key\":\"f9d0af516bb948a6b8e63a5012fce47e\"}],\"key\":\"ee7fbc10c6ad401481f6eff8cde44321\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"4877608f2ed7475b9b8e3437a523fe49\"}],\"key\":\"458f08afbd594542bbeec24a529f5706\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"692bf798c8a04bb5b3637b8e7c8c42c4\"}],\"key\":\"1be3ebe9b5e24c20beaacf7930336bce\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"};\",\"marks\":[]}],\"key\":\"0bf5330eeb154ac5b75e48692121c2de\"}],\"key\":\"aaca87a51a6a49e192bac878ca9a9cdb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"0b5976c6940b4a5c943cb087de3f2d39\"}],\"key\":\"4bba654e4d3244b48ef5b0533f753998\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"void main() {\",\"marks\":[]}],\"key\":\"d4dbf1c61d054d3ea37025755e48f2c1\"}],\"key\":\"efc9d6c1f2914c4a967d1e2bbabfbb78\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ...\",\"marks\":[]}],\"key\":\"4feb4d1eaef74449aeffda029da2fe8b\"}],\"key\":\"28269b9ae2964275847d934a13d4953c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" obx_sync_listener_login(sync_client, change_listener, \u0026change_listener_arg);\",\"marks\":[]}],\"key\":\"49aeb5b3ea0a423394c32edeca802da3\"}],\"key\":\"d838f33fe99a4cad901cb35cfcbde40a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\"}\",\"marks\":[]}],\"key\":\"64cd6c64fd134fc698609df24e7b6095\"}],\"key\":\"0c6193a485964961940515a93bb1ca07\"}],\"key\":\"f761fb2c5a9b4de7875407f3167d71d7\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.SetChangeListener(func(changes []*objectbox.SyncChange) {\",\"marks\":[]}],\"key\":\"9fe7ced7df414fc9aa47ab72fe116a76\"}],\"key\":\"4cf0e27656264c859670e612286ac5ff\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\tfmt.Printf(\\\"received %d changes\\\\n\\\", len(changes))\",\"marks\":[]}],\"key\":\"ad62607462db4b80b67b62cec1fd59a9\"}],\"key\":\"86a2d0dc262e41adb4f0731252f85f70\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\tfor i, change := range changes {\",\"marks\":[]}],\"key\":\"f0ad9d74cae14e2fbcd1ccd41192cd60\"}],\"key\":\"c9747a9231b34fada8e40da727416474\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\tfmt.Printf(\\\"change %d: %v\\\\n\\\", i, change)\",\"marks\":[]}],\"key\":\"15e69a1546e14738a7a86f925fa8db7b\"}],\"key\":\"795d6e6ae0b84204b6a4128252163848\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"e75b33e6d5494ba7aab952b55b59490e\"}],\"key\":\"07275d4e6e31407f863a18fef5d8b891\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\t// change.EntityId is a \\\"model-entity-id\\\", e.g. we can choose to process\",\"marks\":[]}],\"key\":\"262139fc090b41f3824aa52c410a767c\"}],\"key\":\"f8885318dfb54e2eb9fed7ceb070f709\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\t// only changes on Entity `User`, with the generated `UserBinding`:\",\"marks\":[]}],\"key\":\"63f8b0ceb01f497588762a2bb7aa4f10\"}],\"key\":\"dc8e77410bcc4abbaafb00b46d5039a2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\tif change.EntityId == model.UserBinding.Id {\",\"marks\":[]}],\"key\":\"fdac3ac9f1274757970e73e4924af91e\"}],\"key\":\"304a61a3499249febd31c2f2b85674e1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\t fmt.Printf(\\\"put user IDs %v\\\\n\\\", change.Puts)\",\"marks\":[]}],\"key\":\"c2ded6bac7494ad3b9968082ee4d5d27\"}],\"key\":\"f8dde5917a3145139b34980cda5097b4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\t fmt.Printf(\\\"deleted user IDs %v\\\\n\\\", change.Removals)\",\"marks\":[]}],\"key\":\"2d1de86542904869b97d5d8e514359ce\"}],\"key\":\"2ca86f25a"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"6c84e1890192861c1e9b7cb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t\\t}\",\"marks\":[]}],\"key\":\"fb7c9cb52961473aa5baa78093b5028a\"}],\"key\":\"83996195f74b4d0690ffd8db2829c413\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t\\t}\",\"marks\":[]}],\"key\":\"228efec1e0144e478aae8c3447eb9090\"}],\"key\":\"86feeb10ec93424595f49a432547eaa1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\\t})\",\"marks\":[]}],\"key\":\"b68ec84bfb744c909a3570e61c2deee5\"}],\"key\":\"888bfcfe76e846cdb00b995b1de12445\"}],\"key\":\"bd0dd24488d74129995fffcc3b9b1774\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"listeners-concurrency\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"listeners-concurrency\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#listeners-concurrency\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Listeners concurrency\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Some events may be issued in parallel, from multiple background threads. To help you understand when and how you need to take care of concurrency (e.g. use mutex/atomic variables), we've grouped the sync listeners to these two groups"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,":\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ul\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"\"}]],\"$L69\",[[\"$\",\"$57\",\"0\",{\"children\":\" - listening to login success/failure, connection status, sync complete.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"\"}]],\"$L6a\",[[\"$\",\"$57\",\"0\",{\"children\":\" - listening to incoming data changes.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"There can be only one event executed at any single moment from a listener in a single group. You can imagine this as if there were two parallel threads, one could only issue \\\"state\\\" events, the other only \\\"data change\\\" events.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"controlling-sync-updates-behavior\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\","])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"controlling-sync-updates-behavior\",\"className\":\"text-2xl font-semibold heading group relative grid w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#controlling-sync-updates-behavior\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start dark:shadow-none dark:ring-0 leading-snug\",\"children\":[\"$\",\"$L3a\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1lh] transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Controlling sync updates behavior\"}]]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"By default, after the Sync client is logged in, its database is updated from the server and the client will automatically subscribe for any future changes. For advanced use cases, like unit testing, it is possible to control when the client receives data updates from the server.\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"To change the default behavior, configure the \\\"Request Updates Mode\\\" before starting the client connection. Three modes are"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1," available:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"ul\",null,{\"className\":\"space-y-2 w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"automatic\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" (default): receives updates on login and subscribes for future updates.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-h"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"idden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"automatic, but no pushes:\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" receives updates on login but doesn't subscribe for future updates.\"}]]]}]}]]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal flex items-center justify-center mr-1 min-h-[1lh] min-w-6 text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"space-y-2 flex flex-col flex-1\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"rol"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"e\":\"status\",\"aria-busy\":true,\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"strong\",null,{\"className\":\"font-bold\",\"children\":\"manual:\"}]}],[\"$\",\"$57\",\"1\",{\"children\":\" no automatic updates on login or on any updates in the future.\"}]]]}]}]]}]]}]}]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"When using one of the non-default modes, synchronization can be controlled after login during application runtime by requesting and cancelling updates using the client:\"}]]]}]}],[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-11\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5c\",null,{\"id\":\"39bd0e1db79944af8bee2ba70c50ab0a\",\"tabs\":[{\"id\":\"java-10\",\"title\":\"Java\"},{\"id\":\"kotlin-10\",\"title\":\"Kotlin\"},{\"id\":\"swift-10\",\"title\":\"Swift\"},{\"id\":\"dart-flutter-10\",\"title\":\"Dart/Flutter\"},{\"id\":\"c-16\",\"title\":\"C++\"},{\"id\":\"c-17\",\"title\":\"C\"},{\"id\":\"go-10\",\"title\":\"Go\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"java\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"SyncClient syncClient = syncBuilder\",\"marks\":[]}],\"key\":\"b9079630e9af4bc683ed30533e6c4cde\"}],\"key\":\"00f4c591a23e437f8d44f9e674091e78\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Turn off automatic sync updates.\",\"marks\":[]}],\"key\":\"2bbcfa961964498d970d6fbccdeeeb67\"}],\"key\":\"250565bcdf5a48a8af29a0873337be8c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .requestUpdatesMode(RequestUpdatesMode.MANUAL)\",\"marks\":[]}],\"key\":\"6572b82eb5e342c2bed925064884764a\"}],\"key\":\"620d3ab138f0496e9c1d6cc9e04ff0db\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .build();\",\"marks\":[]}],\"key\":\"1c5dc65a57b44a51948b0c11ad843067\"}],\"key\":\"19ac058c27b841228fe5f4731e6c9eba\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"5cbf9e75b2fc4375a6dcbcfee70c1ceb\"}],\"key\":\"38f29cfef5ad4f1fb3a4370a212a8acc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Wait for login attempt, proceed if logged in.\",\"marks\":[]}],\"key\":\"3e564eee57b34e1da4c6acea18a9cd94\"}],\"key\":\"5870331c5f784cef98e6cd680939e6b2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.awaitFirstLogin(20 * 1000 /* ms */);\",\"marks\":[]}],\"key\":\"4157459d92ff411c9f4dd3085eaf6334\"}],\"key\":\"893939b7cb164fdaaa58e8b9393753da\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"if (syncClient.isLoggedIn()) {\",\"marks\":[]}],\"key\":\"d947bcdca3e041759386711f6ce138df\"}],\"key\":\"4d29b5331f92495bad2dd71546825e5c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Turn on automatic sync updates.\",\"marks\":[]}],\"key\":\"b81b64bc05084c2190dc3b07e41f7efe\"}],\"key\":\"dde41b863fcc42d0bee3b8a69bb179c9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient.requestUpdates();\",\"marks\":[]}],\"key\":\"2ce35bed6e27445fb1f6e84643b87913\"}],\"key\":\"76c2856f58ec4e6cab96ce602c0f5bb2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \",\"marks\":[]}],\"key\":\"aa562bd41e2a4e4f81dd794d09465c93\"}],\"key\":\"a14446d8444442b0bff80b9a2d2088b9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Turn off automatic sync updates, cancel ongoing sync.\",\"marks\":[]}],\"key\":\"52c57d9d69ff436fa384fb00acb9cfcf\"}],\"key\":\"773771c26e344b889427483abb17d86c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient.cancelUpdates();\",\"marks\":[]}],\"key\":\"101e4562b"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"b3a418c8e9caabb7117182c\"}],\"key\":\"fd97733e1d6949abbf00f190fa49c0ef\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \",\"marks\":[]}],\"key\":\"5fb4a338010740b9b6e3db621b2da729\"}],\"key\":\"ec273ae7ac1b4b758cb0f9ab8858564d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Request one-time update.\",\"marks\":[]}],\"key\":\"6c12e6563a9a41d5ac899783516d91bc\"}],\"key\":\"e0557a9049464393947473c494562918\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Will update client with latest data.\",\"marks\":[]}],\"key\":\"48714f19b676408694c1968c9230a118\"}],\"key\":\"a8004d07098e4523b7e074ef4e42c11c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient.requestUpdatesOnce();\",\"marks\":[]}],\"key\":\"c39b51ddbdb54a459f89c83c77825863\"}],\"key\":\"ffc462a6d40d40a2be3bbfe78ae34125\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"e1c4d1bf21b641c3b8c521c8edf49242\"}],\"key\":\"368d21e0c20947f4bd552d5fe81c3bc4\"}],\"key\":\"36b5e8235e004cec8a1d6ccd7881d28c\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"kotlin\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"val syncClient = syncBuilder\",\"marks\":[]}],\"key\":\"6056e0ec572844b785c64a177d41024e\"}],\"key\":\"9b96d0e812234e059414723f82e8a399\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Turn off automatic sync updates.\",\"marks\":[]}],\"key\":\"62f4ebf53a4e44809ef7264b26aa4da2\"}],\"key\":\"6a2a866729ed45c2bd50b5b20170e91e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .requestUpdatesMode(RequestUpdatesMode.MANUAL)\",\"marks\":[]}],\"key\":\"5b1bd9b056e648e79260cc60ababbae5\"}],\"key\":\"4e1e636d74bd4806b74b4d864da54a7a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" .build()\",\"marks\":[]}],\"key\":\"3a40b64a16234043abd480f1ce315099\"}],\"key\":\"075496dd5ab74a5fbfd6ecae4425ce4e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"cd0c5603783f4c6ea4b82dc240ff3737\"}],\"key\":\"faad6bee3ea74ece8279f3a48cc11ebf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Wait for login attempt, proceed if logged in.\",\"marks\":[]}],\"key\":\"dd478fa5e6834f53a5b349248ddebace\"}],\"key\":\"f6082f02daaa4eb4bb43eccec22d840b\"},{\"obje"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ct\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.awaitFirstLogin(20 * 1000 /* ms */)\",\"marks\":[]}],\"key\":\"ff0dc5b7c9554869bf5e63006f7bfc2f\"}],\"key\":\"471c4df0d8e048d8891a14862f9096ab\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"if (syncClient.isLoggedIn()) {\",\"marks\":[]}],\"key\":\"d8eba52e2adc4d4d91c6f6c2766a1803\"}],\"key\":\"920e830bc38441e9800fe37f17c7d7a3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Turn on automatic sync updates.\",\"marks\":[]}],\"key\":\"28cb8a97174e4873bf1031bab5fbfa95\"}],\"key\":\"49798d99e5b440eda56e8fea6c5f0bf3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient.requestUpdates()\",\"marks\":[]}],\"key\":\"4399ffe3f92f47e8a451937f35a75f20\"}],\"key\":\"4bd63f3b89c04ac998406d7940f09926\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \",\"marks\":[]}],\"key\":\"59142bdb488644b58c360fae658ede5f\"}],\"key\":\"3a57fbfd67e44e65a41962dc16cf530b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Turn off automatic sync updates, cancel ongoing sync.\",\"marks\":[]}],\"key\":\"42891b3c66bb4b83b7566330f1ca8ec4\"}],\"key\":\"c2759788f9e245e19a423b62d9115c1e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient.cancelUpdates()\",\"marks\":[]}],\"key\":\"c01b9b023ecf448ba24c5528c1c3b675\"}],\"key\":\"47e73c9c8d3d49a5a92c852700cd0341\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" \",\"marks\":[]}],\"key\":\"05320a66f07443978f2d7ef2cf319afa\"}],\"key\":\"e6df0e1739514be8b48a6a52237362cc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Request one-time update.\",\"marks\":[]}],\"key\":\"3c8326727d8a48b4bbc3065ee569552d\"}],\"key\":\"8b8c16354225401d8da619eee4786b57\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" // Will update client with latest data.\",\"marks\":[]}],\"key\":\"c551e4e5a6fe4902a479f2cd5bcfec03\"}],\"key\":\"2467a39e8e2b4e89a06fa1af0acfee99\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" syncClient.requestUpdatesOnce()\",\"marks\":[]}],\"key\":\"3b05d510f2ce4be1b7ff0b3520495391\"}],\"key\":\"cd4df4cd54ca402c80b10ca52b160613\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"33b0081684264053938c2357f3a8f213\"}],\"key\":\"6e09a856575447398c2552800c57b6fa\"}],\"key\":\"dba71cb7a86e465e9a971cd50ae79537\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--t"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"w-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":[\"$\",\"i\",null,{\"className\":\"font-italic\",\"children\":\"Coming soon!\"}]}]]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"dart\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"final client = Sync.client(...);\",\"marks\":[]}],\"key\":\"b0338dd8bd83463d9168a281aa63c137\"}],\"key\":\"09bfb455def94938b31b7b9a63c8bb00\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"8ce85d7ddf5646e1a22b88118c1d4023\"}],\"key\":\"ba1d663252d7481b903780f3d8a6af4d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"client.setRequestUpdatesMode(SyncRequestUpdatesMode.manual);\",\"marks\":[]}],\"key\":\"06568bdd4a3b4aa6a0b419f269cb5c56\"}],\"key\":\"2503d9388d7c4180ae57a4396e09b651\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"client.start(); // Connect but don't synchronize yet.\",\"marks\":[]}],\"key\":\"d4cdc0e806be4c33b3eec0127923f052\"}],\"key\":\"9c06844999564453b933207135a15508\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"33616ff6b44d425787089981ec62ecf8\"}],\"key\":\"26f7a2a91bd94c32bdaf483d3dc4e52b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Turn on sync updates and subscribe for pushes.\",\"marks\":[]}],\"key\":\"3fa5a1bd9ce244348e87706e54f074e2\"}],\"key\":\"3bbb4f7fb39440a7a8d536694fbafa13\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"client.requestUpdates(subscribeForFuturePushes: true);\",\"marks\":[]}],\"key\":\"a7a72867951644568c4c6af4e90b89b8\"}],\"key\":\"4e7034033a424cb3aa838597ee46252e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"0e63bd10641d4be681d0e6567c60430b\"}],\"key\":\"ed46d1406a94473db45d42d784b50dcb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Cancel ongoing synchronization \u0026 unsubscribe from future updates.\",\"marks\":[]}],\"key\":\"6cb7c5871fb14556bee61af1c0176554\"}],\"key\":\"b2043a228105431bbc32cacfc71078ab\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"client.cancelUpdates();\",\"marks\":[]}],\"key\":\"705fc7c775b645dbaa9320a302fbd656\"}],\"key\":\"0513d450c51440a499de352ee4cdf534\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"611"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"a2cd0426c48bd873ab737ffd9a6dc\"}],\"key\":\"85bd7adfca964b56b1d5e9bd01ab4da0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Alternatively, catch up with the server but don't subscribe for future.\",\"marks\":[]}],\"key\":\"cbc3bffc5a804ee3bb9c3f5bdc6d1c5c\"}],\"key\":\"95cd29c4ce544298ab68ac5175b0ba4d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// You can call this instead of subscribing to do one-time updates as needed.\",\"marks\":[]}],\"key\":\"59bb28aa231f438a859c85915fca2d08\"}],\"key\":\"83560d05e02c4d2c8fa6f3995d297b42\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"client.requestUpdates(subscribeForFuturePushes: false);\",\"marks\":[]}],\"key\":\"6bc33c5b63974d29bf3b876f466343c0\"}],\"key\":\"3265172c28f6488ab1cb2bb9573e12ab\"}],\"key\":\"f84358be393c4f0ba1809141c7bac7a2\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"std::shared_ptr\u003cobx::SyncClient\u003e syncClient = obx::Sync::client(store, ...);\",\"marks\":[]}],\"key\":\"6d8174d500e7478faa805b32442fe7ee\"}],\"key\":\"20f15b44cd6846ee81869ddef9da551f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"36a114639a0e41019299ba551319c194\"}],\"key\":\"d7d06059acb640fcb5db09bf9f02da33\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003esetRequestUpdatesMode(OBXRequestUpdatesMode_MANUAL);\",\"marks\":[]}],\"key\":\"904247a391314031ae47412468081e9a\"}],\"key\":\"daecf187db174a088922066acba7a01e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003estart(); // Connect but don't synchronize yet.\",\"marks\":[]}],\"key\":\"10c31913afef4f12b1916b0acc54f8b1\"}],\"key\":\"4623ef3ae9f94a4287bd1c90f0faa5d5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"b03265ea92d84520a60e94d68e0157af\"}],\"key\":\"2d17cb64d8394694b96cda650bcf8c83\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Turn on sync updates and subscribe for pushes.\",\"marks\":[]}],\"key\":\"db88e82d40104d2a97f76005d10dc4d2\"}],\"key\":\"7540761b633f404dae52841bf6a186bd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003erequestUpdates(true);\",\"marks\":[]}],\"key\":\"bc06b0a20ba343f084dd56e9dc53b960\"}],\"key\":\"36a06e106101418a8afc5c898b38f1d0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoi"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"d\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"ef472882b22c428a89bc4305ad7f8b20\"}],\"key\":\"68933eb12e5e4a8cb0fcfe36b56d37bf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Cancel ongoing synchronization \u0026 unsubscribe from future updates.\",\"marks\":[]}],\"key\":\"5e5919e458bd46b69e0c96dcd3f5d680\"}],\"key\":\"750d0801e8834a478dfd6635b35a74a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003ecancelUpdates();\",\"marks\":[]}],\"key\":\"5b2705f49fee4a66b3283a6cdbdadc52\"}],\"key\":\"c32fd0b2e3b546b3a4a7ffd5d603fb8c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"8e2cdebc04f8423388a7e8834e9a230a\"}],\"key\":\"689ed945fe9d4a0980c04e925f0e1f1e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Alternatively, catch up with the server but don't subscribe for future.\",\"marks\":[]}],\"key\":\"b6fff25cd0e344359442af3369e08b43\"}],\"key\":\"96ee44f5581940aa8d851bc785cc813f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// You can call this instead of subscribing to do one-time updates as needed.\",\"marks\":[]}],\"key\":\"ef96298a861d470c8fbf2c7bb04199bd\"}],\"key\":\"4fb5476d9ab147d1a82db318ef94768c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003erequestUpdates(false);\",\"marks\":[]}],\"key\":\"6fb51a25c61c4bc6afac88ea1cb317f1\"}],\"key\":\"40bcce34410a4df6b9d67b78dbd2e9d4\"}],\"key\":\"1aea0167878f4dd88a49c4148b10968d\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"cpp\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"OBX_sync* sync_client = obx_sync(store, ...);\",\"marks\":[]}],\"key\":\"c194d321e2c44b6e82dbebed0bb5ee57\"}],\"key\":\"2e36f451a2fe48db8fe5af267b9860a6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_credentials(sync_client, ...);\",\"marks\":[]}],\"key\":\"c853d12f513d4c1887a6999695f0c112\"}],\"key\":\"9171ff30ae0d4683a5d41db8f303a1d8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"a03641ee2aeb426894ed6b86257c7931\"}],\"key\":\"fcdb88554c5c447eafe19a8dd11994a4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_request_updates_mode(sync_client, OBXRequestUpdatesMode_MANUAL);\",\"marks\":[]}],\"key\":\"60d45ad7c54b42dfb92088ba0cba439b\"}],\"key\":\"685bf6af8f064b0593f30b"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"7bf5963270\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_start(sync_client); // Connect but don't synchronize yet.\",\"marks\":[]}],\"key\":\"03c9a0ad5b994fb5900c4e803cae08fd\"}],\"key\":\"8bb70724a0d647c28b9d4940d53dcbd8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"54230ef429494f36b21d2d710e538d9b\"}],\"key\":\"5332bbdbb417411fb878f577559b5964\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Turn on sync updates and subscribe for pushes.\",\"marks\":[]}],\"key\":\"f9232ed7f6564d7f93c77e0b8cb4419e\"}],\"key\":\"661d5607adcb4fb3aba396cf507a845a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_updates_request(sync_client, true);\",\"marks\":[]}],\"key\":\"9e6ad5ec0fcc4d2993e7dc223ee86b32\"}],\"key\":\"60bde88dc8944d239a0aec721d1db52c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"18ba34e2bb54458c9c9626feb4933f55\"}],\"key\":\"5c68824c1d4745ed85c30fd5b4b02d7b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Cancel ongoing synchronization \u0026 unsubscribe from future updates.\",\"marks\":[]}],\"key\":\"857548697c954801a7f21a8014d98be6\"}],\"key\":\"afcb75b7ce3e4350860e7953e20fe42f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_updates_cancel(sync_client);\",\"marks\":[]}],\"key\":\"075e5a1e987f41638618e49816017f6d\"}],\"key\":\"7048a1f9d64c4fd19dc510f171a3c724\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"4394816bd65e49499ed6ef2785c1bead\"}],\"key\":\"5bcfe0c6f56b41488f04f07adc6dfb67\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Alternatively, catch up with the server but don't subscribe for future.\",\"marks\":[]}],\"key\":\"e52f09d7a151438193f13fe2662dad12\"}],\"key\":\"dcc63a48b27e42f8bce8a62134577171\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// You can call this instead of subscribing to do one-time updates as needed.\",\"marks\":[]}],\"key\":\"a074027a9c4d43009942dff7993e6b8a\"}],\"key\":\"fc680b525bdc4b918f70b147149afc5d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"obx_sync_updates_request(sync_client, false);\",\"marks\":[]}],\"key\":\"0c720505be2e423889ad394489dc9e06\"}],\"key\":\"c4e709bb40af42b59ae53dc83396c48d\"}],\"key\":\"63ea91c33fc746a8a8c7e021544c6cab\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] w-full mx-auto decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L5e\",nu"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ll,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"go\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient, err := objectbox.NewSyncClient(...)\",\"marks\":[]}],\"key\":\"d7c020d755b54131881a11dc185f4283\"}],\"key\":\"ee3d95f01f214b388203a3d52dbbd8f9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"f0f1871b56af44cd8262ff039f594de6\"}],\"key\":\"869a692beb344c1283f1e797e155aaaf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.SetRequestUpdatesMode(objectbox.SyncRequestUpdatesManual)\",\"marks\":[]}],\"key\":\"949e6750d1284df69edebf69aca1cd39\"}],\"key\":\"448738d197714b7fb5dd89aa74ccbe42\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.Start() // Connect but don't synchronize yet.\",\"marks\":[]}],\"key\":\"691545f9846944a0b03e2d8f99c50566\"}],\"key\":\"76bb890995aa4c4daf0f1b9e42a3f745\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"407bf9acfc3d4592a004a9d847dcc6b8\"}],\"key\":\"7fad5e459565470681480b8f9c913845\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Turn on sync updates and subscribe for pushes.\",\"marks\":[]}],\"key\":\"609c41dca1d04449a5a43faecc51f82d\"}],\"key\":\"a1e441b6534744098f58cbbb3e352acb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.RequestUpdates(true)\",\"marks\":[]}],\"key\":\"39534e6077fc473d832f84bd7bb8db04\"}],\"key\":\"c7ff619afa7a4281aaaeae9894e55054\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"3a8c38e141ca40a18f8f5aeecaed0b83\"}],\"key\":\"efc13d088d95440da931ce4d633276d5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Cancel ongoing synchronization \u0026 unsubscribe from future updates.\",\"marks\":[]}],\"key\":\"8ae7adb2a6f64f21be61fb8365629d5e\"}],\"key\":\"880a7a04b8304f9ead7f4cbbf5ed46c9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient.CancelUpdates()\",\"marks\":[]}],\"key\":\"daa836e215af49fca88c00529e9a0a7c\"}],\"key\":\"fc9fcea98d9940dc8a9dd530b01aecc5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"e322371145e747baa85aed372ba9db04\"}],\"key\":\"e2469ea7b267455ca2ecaa4c48d92df4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// Alternatively, catch up with the server but don't subscribe for future.\",\"marks\":[]}],\"key\":\"67f92a0612dc4b2c8e0d27b8acfc4708\"}],\"key\":\"8de5ed33cc72406a9f452919340c937b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"// You can call this instead of subscribing to do one-time updates as needed.\",\"marks\":[]}],\"key\":\"833ab72a20aa4df09c702fa98ab669ca\"}],\"key\":\"dea85e698ea048e8850021b3e42034f4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"syncClient-\u003erequestUpdates(false)\",\"marks\":[]}],\"key\":\"23920f125ef84d50957986fa4402c998\"}],\"key\":\"cdf24c08b15646f3977925c1d8239ee1\"}],\"key\":\"bcf85a51ea494a3f84c6def12231c70a\"},\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]}]]}]],\"style\":[\"w-full mx-auto decoration-primary/6\",\"max-w-3xl\",\"$62\"]}]}]]}]}],\"$L6b\",[\"$\",\"div\",null,{\"className\":\"flex flex-row flex-wrap gap-4 items-center mt-6 max-w-3xl mx-auto page-api-block:ml-0 text-tint c"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ontrast-more:text-tint-strong\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm mr-auto\",\"children\":[[[\"$\",\"$57\",\"string-0\",{\"children\":\"Last updated \"}],[\"$\",\"$57\",\"arg-0\",{\"children\":[\"$\",\"$L6c\",null,{\"value\":\"2025-02-11T07:07:33.598Z\"}]}]],\"\"]}],[\"$\",\"$L6d\",null,{\"className\":\"xl:hidden\",\"orientation\":\"horizontal\",\"pageId\":\"-MG8Tvq6Td68Nf1gAbmP\"}]]}]]}],[\"$\",\"$L1e\",null,{\"pageId\":\"-MG8Tvq6Td68Nf1gAbmP\",\"revisionId\":\"YrUPXBqEaPAQlc1mKri5\"}]]]}],[\"$\",\"$22\",null,{\"fallback\":null,\"children\":[\"$\",\"$L6e\",null,{\"withSections\":false}]}]]\n15:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"name\":\"color-scheme\",\"content\":\"light\"}],[\"$\",\"meta\",\"2\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"3\",{\"children\":\"Sync Client | ObjectBox Sync\"}],[\"$\",\"meta\",\"4\",{\"name\":\"description\",\"content\":\"How to create an ObjectBox Sync client and connect to an ObjectBox Sync server.\"}],[\"$\",\"meta\",\"5\",{\"name\":\"generator\",\"content\":\"GitBook (d222c11)\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://sync.objectbox.io/sync-client\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Sync Client | ObjectBox Sync\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"How to create an ObjectBox Sync client and connect to an ObjectBox Sync server.\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://sync.objectbox.io/~gitbook/ogimage/-MG8Tvq6Td68Nf1gAbmP\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Sync Client | ObjectBox Sync\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"How to create an ObjectBox Sync client and connect to an ObjectBox Sync server.\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:image\",\"content\":\"https://sync.objectbox.io/~gitbook/ogimage/-MG8Tvq6Td68Nf1gAbmP\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"https://2882845212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MG8Rp3u8P9P7cUT3_pP%2Ficon%2FB3y4dFQB6c8O3h5fzSAs%2FProfile-picture-linkedIn.jpg?alt=media\u0026token=6c4f9693-6da0-484b-b330-5357c112bf6b\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"16\",{\"rel\":\"icon\",\"href\":\"https://2882845212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MG8Rp3u8P9P7cUT3_pP%2Ficon%2FB3y4dFQB6c8O3h5fzSAs%2FProfile-picture-linkedIn.jpg?alt=media\u0026token=6c4f9693-6da0-484b-b330-5357c112bf6b\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"meta\",\"17\",{\"name\":\"next-size-adjust\"}]]\nd:null\n70:I[2554,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"Ad\"]\n56:[\"$\",\"header\",null,{\"className\":\"max-w-3xl mx-auto mb-6 space-y-3 page-api-block:ml-0\",\"children\":[false,[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold flex items-center gap-4\",\"children\":[\"$undefined\",\"Sync Client\"]}],[\"$\",\"p\",null,{\"className\":\"text-lg text-tint\",\"children\":\"How to create an ObjectBox Sync client and connect to an ObjectBox Sync server.\"}]]}]\n58:[\"$\",\"$L39\",null,{\"href\":\"https://docs.objectbox.io/\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://docs.objectbox.io/\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Java/Kotlin\"}]]]}]\n59:[\"$\",\"$L39\",null,{\"href\":\"https://swift.objectbox.io/\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primar"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"y contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://swift.objectbox.io/\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Swift\"}]]]}]\n5a:[\"$\",\"$L39\",null,{\"href\":\"https://cpp.objectbox.io/\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://cpp.objectbox.io/\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"C and C++\"}]]]}]\n5b:[\"$\",\"$L39\",null,{\"href\":\"https://golang.objectbox.io/\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://golang.objectbox.io/\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Go\"}]]]}]\n5d:[\"$\",\"$L39\",null,{\"href\":\"https://docs.objectbox.io/getting-started\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://docs.objectbox.io/getting-started\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Getting Started\"}]]]}]\n5f:[\"$\",\"$L39\",null,{\"href\":\"https://swift.objectbox.io/install\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://swift.objectbox.io/install\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"general installation and update \"}]]]}]\n60:[\"$\",\"$L39\",null,{\"href\":\"https://docs.objectbox.io/getting-started\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://docs.objectbox.io/getting-started\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Getting Started\"}]]]}]\n61:[\"$\",\"$L39\",null,{\"href\":\"https://cmake.org/cmake/help/latest/module/FetchContent.html\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://cmake.org/cmake/help/latest/module/FetchContent.html\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"CMake's FetchContent\"}]]]}]\n63:[\"$\",\"$L39\",null,{\"href\":\"https://developer.android.com/studio/run/emulator-networking\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://developer.android.com/studio/run/emulator-networking\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Details\"}]]]}]\n67:[\"$\",\"$L39\",null,{\"href\":\"https://developers.google.com/identity/sign-in/android/start-integrating\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://developers.google.com/identity/sign-in/android/start-integrating\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Google Sign-In\"}]]]}]\n68:[\"$\",\"$L39\",null,{\"href\":\"https://developers.google.com/identity/sign-in/android/backend-auth\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong trans"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"ition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://developers.google.com/identity/sign-in/android/backend-auth\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"obtained the user's ID token\"}]]]}]\n54:[\"$\",\"aside\",null,{\"className\":\"group/aside hidden xl:flex flex-col basis-56 grow-0 shrink-0 break-anywhere text-tint contrast-more:text-tint-strong sticky lg:top-0 lg:max-h-screen site-header:lg:top-16 site-header:lg:max-h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:max-h-[calc(100vh_-_6.75rem)] page-api-block:xl:max-2xl:z-10 page-api-block:xl:max-2xl:fixed page-api-block:xl:max-2xl:right-8 page-api-block:xl:max-2xl:w-56 page-api-block:xl:max-2xl:bg-tint/9 page-api-block:xl:max-2xl:contrast-more:bg-tint page-api-block:xl:max-2xl:backdrop-blur-lg page-api-block:xl:max-2xl:border page-api-block:xl:max-2xl:border-tint page-api-block:xl:max-2xl:hover:shadow-lg page-api-block:xl:max-2xl:hover:shadow-tint-12/1 page-api-block:xl:max-2xl:dark:hover:shadow-tint-1/1 page-api-block:xl:max-2xl:rounded-md page-api-block:xl:max-2xl:h-auto page-api-block:xl:max-2xl:my-8 page-api-block:p-2\",\"children\":[[[\"$\",\"div\",null,{\"className\":\"hidden page-api-block:xl:max-2xl:flex text-xs tracking-wide font-semibold uppercase flex-row items-center gap-2\",\"children\":[[\"$\",\"$L3a\",null,{\"icon\":\"block-quote\",\"className\":\"size-3\"}],\"On this page\",[\"$\",\"$L3a\",null,{\"icon\":\"chevron-down\",\"className\":\"size-3 opacity-6 ml-auto page-api-block:xl:max-2xl:group-hover/aside:hidden\"}]]}],[\"$\",\"div\",null,{\"className\":\"overflow-y-auto overflow-x-visible flex flex-col shrink pb-12 sticky lg:top:0 site-header:lg:top-16 site-header-sections:lg:top-[6.75rem] gap-6 pt-8 page-api-block:xl:max-2xl:py-0 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:group-hover/aside:flex\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":null,\"children\":\"$L6f\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 sidebar-list-default:px-3 border-t first:border-none border-tint-subtle py-4 first:pt-0 page-api-block:xl:max-2xl:px-3 empty:hidden\",\"children\":[[\"$\",\"$22\",null,{\"fallback\":null,\"children\":[\"$\",\"$L6d\",null,{\"pageId\":\"-MG8Tvq6Td68Nf1gAbmP\",\"className\":\"mt-2\"}]}],null,null]}]]}]],[\"$\",\"div\",null,{\"className\":\"pb-4 sticky bottom-0 bg-tint-base theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint z-10 mt-auto flex flex-col page-api-block:xl:max-2xl:pb-0 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:group-hover/aside:flex page-api-block:xl:max-2xl:bg-transparent\",\"children\":[null,[\"$\",\"$L70\",null,{\"zoneId\":null,\"placement\":\"aside\",\"spaceId\":\"-MG8Rp3u8P9P7cUT3_pP\",\"siteAdsStatus\":\"$undefined\",\"ignore\":false,\"style\":\"$undefined\"}]]}]]}]\n64:[\"$\",\"$L39\",null,{\"href\":\"/sync-client#controlling-sync-updates-behavior\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"anchor\",\"anchor\":\"controlling-sync-updates-behavior\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"sync updates behavior\"}]]]}]\n65:[\"$\",\"$L39\",null,{\"href\":\"/sync-client#listening-to-events\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"anchor\",\"anchor\":\"listening-to-events\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"configure an event listener\"}]]]}]\n66:[\"$\",\"$L39\",null,{\"href\":\"/sync-server-configuration/jwt-authentication\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"eTe0eIONrN2NazDhiYmM\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"server-side JWT"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1," documentation\"}]]]}]\n69:[\"$\",\"$L39\",null,{\"href\":\"/sync-client#listening-to-events\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"anchor\",\"anchor\":\"listening-to-events\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"State listeners\"}]]]}]\n6a:[\"$\",\"$L39\",null,{\"href\":\"/sync-client#listening-to-sync-updates\",\"className\":\"underline underline-offset-2 text-primary-subtle hover:text-primary contrast-more:text-primary contrast-more:hover:text-primary-strong transition-colors\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"anchor\",\"anchor\":\"listening-to-sync-updates\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$57\",\"0\",{\"children\":\"Data change listener\"}]]]}]\n6b:[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row mt-6 gap-2 max-w-3xl mx-auto page-api-block:ml-0 text-tint\",\"children\":[[\"$\",\"$L39\",null,{\"href\":\"/\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"oWEw0vaHS07lRPzOwMqC\"},\"position\":\"content\"}},\"className\":\"group text-sm p-2.5 flex gap-4 flex-1 flex-row-reverse items-center pl-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-col flex-1 text-right\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs\",\"children\":\"Previous\"}],[\"$\",\"span\",null,{\"className\":\"text-tint-strong group-hover:text-primary line-clamp-2\",\"children\":\"Data Synchronization\"}]]}],[\"$\",\"$L3a\",null,{\"icon\":\"chevron-left\",\"className\":\"hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block\"}]]}],[\"$\",\"$L39\",null,{\"href\":\"/objectbox-sync-server\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MG8vKZ8wRdbXQgyTLmS\"},\"position\":\"content\"}},\"className\":\"group text-sm p-2.5 flex gap-4 flex-1 flex-row items-center pr-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-col flex-1\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs\",\"children\":\"Next\"}],[\"$\",\"span\",null,{\"className\":\"text-tint-strong group-hover:text-primary line-clamp-2\",\"children\":\"ObjectBox Sync Server\"}]]}],[\"$\",\"$L3a\",null,{\"icon\":\"chevron-right\",\"className\":\"hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block\"}]]}]]}]\n71:I[19522,[\"2622\",\"static/chunks/2622-d4284e72be418b70.js\",\"7609\",\"static/chunks/7609-5073804535dff38c.js\",\"2999\",\"static/chunks/2999-584f9b8ecc233405.js\",\"7993\",\"static/chunks/7993-8ef7f7477490b7af.js\",\"5572\",\"static/chunks/5572-d068cc2bc8e73d12.js\",\"5890\",\"static/chunks/5890-3ab2501336ce1348.js\",\"8843\",\"static/chunks/8843-f0d01ada04c351a9.js\",\"983\",\"static/chunks/983-4fad0180b495256f.js\",\"4055\",\"static/chunks/4055-7666845ca98fb1a4.js\",\"4168\",\"static/chunks/4168-597f57f1cfad2671.js\",\"4722\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/page-a1cb1652fa802fac.js\"],\"ScrollSectionsList\"]\n6f:[\"$\",\"$L71\",null,{\"sections\":[{\"id\":\"objectbox-sync-enabled-library\",\"title\":\"ObjectBox Sync enabled library\",\"depth\":1},{\"id\":\"enable-your-objects-for-objectbox-sync\",\"title\":\"Enable your Objects for ObjectBox Sync\",\"depth\":1},{\"id\":\"start-the-sync-client\",\"title\":\"Start the Sync Client\",\"depth\":1},{\"id\":\"drop-off-send-only-clients\",\"title\":\"Drop-off, send-only clients\",\"depth\":2},{\"id\":\"secure-connection\",\"title\":\"Secure Connection\",\"depth\":2},{\"id\":\"authentication-options\",\"title\":\"Authentication options\",\"depth\":1},{\"id\":\"jwt-authentication\",\"title\":\"JWT authentication\",\"depth\":2},{\"id\":\"shared-secret\",\"title\":\"Shared secret\",\"depth\":2},{\"id\":\"google-sign-in\",\"title\":\"Google Sign-In\",\"depth\":2},{\"id\":\"no-authentication-insecure\",\"title\":\"No authentication (insecure)\",\"depth\":2},{\"id\":\"manually-start\",\"title\":\"Manually start\",\"depth\":1},{\"id\":\"listening-to-events\",\"title\":\"Listening to eve"])</script><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">self.__next_f.push([1,"nts\",\"depth\":1},{\"id\":\"advanced\",\"title\":\"Advanced\",\"depth\":1},{\"id\":\"listening-to-incoming-data-changes\",\"title\":\"Listening to incoming data changes\",\"depth\":2},{\"id\":\"listeners-concurrency\",\"title\":\"Listeners concurrency\",\"depth\":2},{\"id\":\"controlling-sync-updates-behavior\",\"title\":\"Controlling sync updates behavior\",\"depth\":2}]}]\n"])</script><div hidden id="S:0"><ul class="sidebar-list-line:border-l border-tint-subtle"><li class="flex flex-row relative h-fit mt-2"><a href="#objectbox-sync-enabled-library" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">ObjectBox Sync enabled library</span></a></li><li class="flex flex-row relative h-fit mt-2"><a href="#enable-your-objects-for-objectbox-sync" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Enable your Objects for ObjectBox Sync</span></a></li><li class="flex flex-row relative h-fit mt-2"><a href="#start-the-sync-client" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Start the Sync Client</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#drop-off-send-only-clients" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Drop-off, send-only clients</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#secure-connection" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Secure Connection</span></a></li><li class="flex flex-row relative h-fit mt-2"><a href="#authentication-options" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Authentication options</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#jwt-authentication" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">JWT authentication</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#shared-secret" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Shared secret</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#google-sign-in" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Google Sign-In</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#no-authentication-insecure" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">No authentication (insecure)</span></a></li><li class="flex flex-row relative h-fit mt-2"><a href="#manually-start" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Manually start</span></a></li><li class="flex flex-row relative h-fit mt-2"><a href="#listening-to-events" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Listening to events</span></a></li><li class="flex flex-row relative h-fit mt-2"><a href="#advanced" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Advanced</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#listening-to-incoming-data-changes" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Listening to incoming data changes</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#listeners-concurrency" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Listeners concurrency</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#controlling-sync-updates-behavior" class="relative flex flex-row items-baseline z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Controlling sync updates behavior</span></a></li></ul></div><script nonce="ZTk3ZDA5ZGEtMGI4ZS00MDAzLWIxNjEtYjY1NWY3MWJlZjFi">$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("B:0","S:0")</script></body></html>