{tr.deckConfigWeights()}
{tr.deckConfigRescheduleCardsOnChange()}
{tr.deckConfigComputeOptimalWeights()}
computeWeights()} > {#if computingWeights} {tr.actionsCancel()} {:else} {tr.deckConfigOptimizeButton()} {/if}
checkWeights()} > {#if checkingWeights} {tr.actionsCancel()} {:else} {tr.deckConfigAnalyzeButton()} {/if}
{#if computingWeights || checkingWeights}
{computeWeightsProgressString}
{/if}
{tr.deckConfigComputeOptimalRetention()} (experimental)
Deck size
Days to simulate
Minutes study/day
Loss aversion
computeRetention()} > {#if computingRetention} {tr.actionsCancel()} {:else} {tr.deckConfigComputeButton()} {/if}
{#if optimalRetention}
setDesiredRetentionToOptimal()} > {stringForSetOptimalRetention(optimalRetention)}
{/if}
{computeRetentionProgressString}