summaryrefslogblamecommitdiffstats
path: root/g4f/gui/client/static/js/text_to_speech/900.index.js
blob: ed1d6fce2d7d2f563302b8466c5f5abefdc9b4b7 (plain) (tree)
1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
(self.webpackChunk=self.webpackChunk||[]).push([[900],{450:(t,e,n)=>{"use strict";n.r(e),n.d(e,{InferenceSession:()=>f,Tensor:()=>h,env:()=>o,registerBackend:()=>s});const r={},i=[],s=(t,e,n)=>{if(!e||"function"!=typeof e.init||"function"!=typeof e.createSessionHandler)throw new TypeError("not a valid backend");{const s=r[t];if(void 0===s)r[t]={backend:e,priority:n};else{if(s.priority>n)return;if(s.priority===n&&s.backend!==e)throw new Error(`cannot register backend "${t}" using priority ${n}`)}if(n>=0){const e=i.indexOf(t);-1!==e&&i.splice(e,1);for(let e=0;e<i.length;e++)if(r[i[e]].priority<=n)return void i.splice(e,0,t);i.push(t)}}},o=new class{constructor(){this.wasm={},this.webgl={},this.logLevelInternal="warning"}set logLevel(t){if(void 0!==t){if("string"!=typeof t||-1===["verbose","info","warning","error","fatal"].indexOf(t))throw new Error(`Unsupported logging level: ${t}`);this.logLevelInternal=t}}get logLevel(){return this.logLevelInternal}},a="undefined"!=typeof BigInt64Array&&"function"==typeof BigInt64Array.from,u="undefined"!=typeof BigUint64Array&&"function"==typeof BigUint64Array.from,l=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array]]),c=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);a&&(l.set("int64",BigInt64Array),c.set(BigInt64Array,"int64")),u&&(l.set("uint64",BigUint64Array),c.set(BigUint64Array,"uint64"));class d{constructor(t,e,n){let r,i,s;if("string"==typeof t)if(r=t,s=n,"string"===t){if(!Array.isArray(e))throw new TypeError("A string tensor's data must be a string array.");i=e}else{const n=l.get(t);if(void 0===n)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(e))i=n.from(e);else{if(!(e instanceof n))throw new TypeError(`A ${r} tensor's data must be type of ${n}`);i=e}}else if(s=e,Array.isArray(t)){if(0===t.length)throw new TypeError("Tensor type cannot be inferred from an empty array.");const e=typeof t[0];if("string"===e)r="string",i=t;else{if("boolean"!==e)throw new TypeError(`Invalid element type of data array: ${e}.`);r="bool",i=Uint8Array.from(t)}}else{const e=c.get(t.constructor);if(void 0===e)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=e,i=t}if(void 0===s)s=[i.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");const o=(t=>{let e=1;for(let n=0;n<t.length;n++){const r=t[n];if("number"!=typeof r||!Number.isSafeInteger(r))throw new TypeError(`dims[${n}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${r}`);e*=r}return e})(s);if(o!==i.length)throw new Error(`Tensor's size(${o}) does not match data length(${i.length}).`);this.dims=s,this.type=r,this.data=i,this.size=o}static bufferToTensor(t,e){if(void 0===t)throw new Error("Image buffer must be defined");if(void 0===e.height||void 0===e.width)throw new Error("Image height and width must be defined");const{height:n,width:r}=e,i=e.norm;let s,o;s=void 0===i||void 0===i.mean?255:i.mean,o=void 0===i||void 0===i.bias?0:i.bias;const a=void 0!==e.bitmapFormat?e.bitmapFormat:"RGBA",u=void 0!==e.tensorFormat&&void 0!==e.tensorFormat?e.tensorFormat:"RGB",l=n*r,c="RGBA"===u?new Float32Array(4*l):new Float32Array(3*l);let h=4,p=0,f=1,g=2,m=3,_=0,b=l,y=2*l,w=-1;"RGB"===a&&(h=3,p=0,f=1,g=2,m=-1),"RGBA"===u?w=3*l:"RBG"===u?(_=0,y=l,b=2*l):"BGR"===u&&(y=0,b=l,_=2*l);for(let e=0;e<l;e++,p+=h,g+=h,f+=h,m+=h)c[_++]=(t[p]+o)/s,c[b++]=(t[f]+o)/s,c[y++]=(t[g]+o)/s,-1!==w&&-1!==m&&(c[w++]=(t[m]+o)/s);return new d("float32",c,"RGBA"===u?[1,4,n,r]:[1,3,n,r])}static async fromImage(t,e){const n="undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement,r="undefined"!=typeof ImageData&&t instanceof ImageData,i="undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap,s="undefined"!=typeof String&&(t instanceof String||"string"==typeof t);let o,a={};if(n){const n=document.createElement("canvas"),r=n.getContext("2d");if(null==r)throw new Error("Can not access image data");{let i=t.naturalHeight,s=t.naturalWidth;if(void 0!==e&&void 0!==e.resizedHeight&&void 0!==e.resizedWidth&&(i=e.resizedHeight,s=e.resizedWidth),void 0!==e){if(a=e,void 0!==e.tensorFormat)throw new Error("Image input config format must be RGBA for HTMLImageElement");if(a.tensorFormat="RGBA",void 0!==e.height&&e.height!==i)throw new Error("Image input config height doesn't match HTMLImageElement height");if(a.height=i,void 0!==e.width&&e.width!==s)throw new Error("Image input config width doesn't match HTMLImageElement width");a.width=s}else a.tensorFormat="RGBA",a.height=i,a.width=s;n.width=s,n.height=i,r.drawImage(t,0,0,s,i),o=r.getImageData(0,0,s,i).data}}else{if(!r){if(i){if(void 0===e)throw new Error("Please provide image config with format for Imagebitmap");if(void 0!==e.bitmapFormat)throw new Error("Image input config format must be defined for ImageBitmap");const n=document.createElement("canvas").getContext("2d");if(null!=n){const r=t.height,i=t.width;if(n.drawImage(t,0,0,i,r),o=n.getImageData(0,0,i,r).data,void 0!==e){if(void 0!==e.height&&e.height!==r)throw new Error("Image input config height doesn't match ImageBitmap height");if(a.height=r,void 0!==e.width&&e.width!==i)throw new Error("Image input config width doesn't match ImageBitmap width");a.width=i}else a.height=r,a.width=i;return d.bufferToTensor(o,a)}throw new Error("Can not access image data")}if(s)return new Promise(((n,r)=>{const i=document.createElement("canvas"),s=i.getContext("2d");if(!t||!s)return r();const o=new Image;o.crossOrigin="Anonymous",o.src=t,o.onload=()=>{i.width=o.width,i.height=o.height,s.drawImage(o,0,0,i.width,i.height);const t=s.getImageData(0,0,i.width,i.height);if(void 0!==e){if(void 0!==e.height&&e.height!==i.height)throw new Error("Image input config height doesn't match ImageBitmap height");if(a.height=i.height,void 0!==e.width&&e.width!==i.width)throw new Error("Image input config width doesn't match ImageBitmap width");a.width=i.width}else a.height=i.height,a.width=i.width;n(d.bufferToTensor(t.data,a))}}));throw new Error("Input data provided is not supported - aborted tensor creation")}{const n="RGBA";let r,i;if(void 0!==e&&void 0!==e.resizedWidth&&void 0!==e.resizedHeight?(r=e.resizedHeight,i=e.resizedWidth):(r=t.height,i=t.width),void 0!==e){if(a=e,void 0!==e.bitmapFormat&&e.bitmapFormat!==n)throw new Error("Image input config format must be RGBA for ImageData");a.bitmapFormat="RGBA"}else a.bitmapFormat="RGBA";if(a.height=r,a.width=i,void 0!==e){const e=document.createElement("canvas");e.width=i,e.height=r;const n=e.getContext("2d");if(null==n)throw new Error("Can not access image data");n.putImageData(t,0,0),o=n.getImageData(0,0,i,r).data}else o=t.data}}if(void 0!==o)return d.bufferToTensor(o,a);throw new Error("Input data provided is not supported - aborted tensor creation")}toImageData(t){var e,n;const r=document.createElement("canvas").getContext("2d");let i;if(null==r)throw new Error("Can not access image data");{const s=this.dims[3],o=this.dims[2],a=this.dims[1],u=void 0!==t&&void 0!==t.format?t.format:"RGB",l=void 0!==t&&void 0!==(null===(e=t.norm)||void 0===e?void 0:e.mean)?t.norm.mean:255,c=void 0!==t&&void 0!==(null===(n=t.norm)||void 0===n?void 0:n.bias)?t.norm.bias:0,d=o*s;if(void 0!==t){if(void 0!==t.height&&t.height!==o)throw new Error("Image output config height doesn't match tensor height");if(void 0!==t.width&&t.width!==s)throw new Error("Image output config width doesn't match tensor width");if(void 0!==t.format&&4===a&&"RGBA"!==t.format||3===a&&"RGB"!==t.format&&"BGR"!==t.format)throw new Error("Tensor format doesn't match input tensor dims")}const h=4;let p=0,f=1,g=2,m=3,_=0,b=d,y=2*d,w=-1;"RGBA"===u?(_=0,b=d,y=2*d,w=3*d):"RGB"===u?(_=0,b=d,y=2*d):"RBG"===u&&(_=0,y=d,b=2*d),i=r.createImageData(s,o);for(let t=0;t<o*s;p+=h,f+=h,g+=h,m+=h,t++)i.data[p]=(this.data[_++]-c)*l,i.data[f]=(this.data[b++]-c)*l,i.data[g]=(this.data[y++]-c)*l,i.data[m]=-1===w?255:(this.data[w++]-c)*l}return i}reshape(t){return new d(this.type,this.data,t)}}const h=d;class p{constructor(t){this.handler=t}async run(t,e,n){const r={};let i={};if("object"!=typeof t||null===t||t instanceof h||Array.isArray(t))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let s=!0;if("object"==typeof e){if(null===e)throw new TypeError("Unexpected argument[1]: cannot be null.");if(e instanceof h)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(e)){if(0===e.length)throw new TypeError("'fetches' cannot be an empty array.");s=!1;for(const t of e){if("string"!=typeof t)throw new TypeError("'fetches' must be a string array or an object.");if(-1===this.outputNames.indexOf(t))throw new RangeError(`'fetches' contains invalid output name: ${t}.`);r[t]=null}if("object"==typeof n&&null!==n)i=n;else if(void 0!==n)throw new TypeError("'options' must be an object.")}else{let t=!1;const o=Object.getOwnPropertyNames(e);for(const n of this.outputNames)if(-1!==o.indexOf(n)){const i=e[n];(null===i||i instanceof h)&&(t=!0,s=!1,r[n]=i)}if(t){if("object"==typeof n&&null!==n)i=n;else if(void 0!==n)throw new TypeError("'options' must be an object.")}else i=e}}else if(void 0!==e)throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const e of this.inputNames)if(void 0===t[e])throw new Error(`input '${e}' is missing in 'feeds'.`);if(s)for(const t of this.outputNames)r[t]=null;const o=await this.handler.run(t,r,i),a={};for(const t in o)Object.hasOwnProperty.call(o,t)&&(a[t]=new h(o[t].type,o[t].data,o[t].dims));return a}static async create(t,e,n,s){let o,a={};if("string"==typeof t){if(o=t,"object"==typeof e&&null!==e)a=e;else if(void 0!==e)throw new TypeError("'options' must be an object.")}else if(t instanceof Uint8Array){if(o=t,"object"==typeof e&&null!==e)a=e;else if(void 0!==e)throw new TypeError("'options' must be an object.")}else{if(!(t instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer))throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");{const r=t;let i=0,u=t.byteLength;if("object"==typeof e&&null!==e)a=e;else if("number"==typeof e){if(i=e,!Number.isSafeInteger(i))throw new RangeError("'byteOffset' must be an integer.");if(i<0||i>=r.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${r.byteLength}).`);if(u=t.byteLength-i,"number"==typeof n){if(u=n,!Number.isSafeInteger(u))throw new RangeError("'byteLength' must be an integer.");if(u<=0||i+u>r.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${r.byteLength-i}].`);if("object"==typeof s&&null!==s)a=s;else if(void 0!==s)throw new TypeError("'options' must be an object.")}else if(void 0!==n)throw new TypeError("'byteLength' must be a number.")}else if(void 0!==e)throw new TypeError("'options' must be an object.");o=new Uint8Array(r,i,u)}}const u=(a.executionProviders||[]).map((t=>"string"==typeof t?t:t.name)),l=await(async t=>{const e=0===t.length?i:t,n=[];for(const t of e){const e=r[t];if(e){if(e.initialized)return e.backend;if(e.aborted)continue;const r=!!e.initPromise;try{return r||(e.initPromise=e.backend.init()),await e.initPromise,e.initialized=!0,e.backend}catch(i){r||n.push({name:t,err:i}),e.aborted=!0}finally{delete e.initPromise}}}throw new Error(`no available backend found. ERR: ${n.map((t=>`[${t.name}] ${t.err}`)).join(", ")}`)})(u),c=await l.createSessionHandler(o,a);return new p(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}const f=p},264:(module,__unused_webpack_exports,__webpack_require__)=>{var e;self,e=__WEBPACK_EXTERNAL_MODULE__1670__=>(()=>{var __webpack_modules__={3474:(t,e,n)=>{var r,i=(r=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(t){function e(){return C.buffer!=M&&W(C.buffer),F}function i(){return C.buffer!=M&&W(C.buffer),L}function s(){return C.buffer!=M&&W(C.buffer),N}function o(){return C.buffer!=M&&W(C.buffer),R}function a(){return C.buffer!=M&&W(C.buffer),j}var u,l,c;t=t||{},u||(u=void 0!==t?t:{}),u.ready=new Promise((function(t,e){l=t,c=e}));var d,h,p,f,g,m,_=Object.assign({},u),b="./this.program",y=(t,e)=>{throw e},w="object"==typeof window,v="function"==typeof importScripts,x="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,T=u.ENVIRONMENT_IS_PTHREAD||!1,S="";function A(t){return u.locateFile?u.locateFile(t,S):S+t}if(x){let e;S=v?n(908).dirname(S)+"/":"//",m=()=>{g||(f=n(1384),g=n(908))},d=function(t,e){return m(),t=g.normalize(t),f.readFileSync(t,e?void 0:"utf8")},p=t=>((t=d(t,!0)).buffer||(t=new Uint8Array(t)),t),h=(t,e,n)=>{m(),t=g.normalize(t),f.readFile(t,(function(t,r){t?n(t):e(r.buffer)}))},1<process.argv.length&&(b=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof lt))throw t})),process.on("unhandledRejection",(function(t){throw t})),y=(t,e)=>{if(Q())throw process.exitCode=t,e;e instanceof lt||P("exiting due to exception: "+e),process.exit(t)},u.inspect=function(){return"[Emscripten Module object]"};try{e=n(9925)}catch(t){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),t}n.g.Worker=e.Worker}else(w||v)&&(v?S=self.location.href:"undefined"!=typeof document&&document.currentScript&&(S=document.currentScript.src),r&&(S=r),S=0!==S.indexOf("blob:")?S.substr(0,S.replace(/[?#].*/,"").lastIndexOf("/")+1):"",x||(d=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},v&&(p=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),h=(t,e,n)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)}));x&&"undefined"==typeof performance&&(n.g.performance=n(6953).performance);var k=console.log.bind(console),O=console.warn.bind(console);x&&(m(),k=t=>f.writeSync(1,t+"\n"),O=t=>f.writeSync(2,t+"\n"));var E,I=u.print||k,P=u.printErr||O;Object.assign(u,_),_=null,u.thisProgram&&(b=u.thisProgram),u.quit&&(y=u.quit),u.wasmBinary&&(E=u.wasmBinary);var D=u.noExitRuntime||!1;"object"!=typeof WebAssembly&&st("no native wasm support detected");var C,$,M,F,L,N,R,j,z=!1,B="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function U(t,e,n){var r=(e>>>=0)+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.buffer&&B)return B.decode(t.buffer instanceof SharedArrayBuffer?t.slice(e,n):t.subarray(e,n));for(r="";e<n;){var i=t[e++];if(128&i){var s=63&t[e++];if(192==(224&i))r+=String.fromCharCode((31&i)<<6|s);else{var o=63&t[e++];65536>(i=224==(240&i)?(15&i)<<12|s<<6|o:(7&i)<<18|s<<12|o<<6|63&t[e++])?r+=String.fromCharCode(i):(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i))}}else r+=String.fromCharCode(i)}return r}function V(t,e){return(t>>>=0)?U(i(),t,e):""}function G(t,e,n,r){if(!(0<r))return 0;var i=n>>>=0;r=n+r-1;for(var s=0;s<t.length;++s){var o=t.charCodeAt(s);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++s)),127>=o){if(n>=r)break;e[n++>>>0]=o}else{if(2047>=o){if(n+1>=r)break;e[n++>>>0]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++>>>0]=224|o>>12}else{if(n+3>=r)break;e[n++>>>0]=240|o>>18,e[n++>>>0]=128|o>>12&63}e[n++>>>0]=128|o>>6&63}e[n++>>>0]=128|63&o}}return e[n>>>0]=0,n-i}function q(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);127>=r?e++:2047>=r?e+=2:55296<=r&&57343>=r?(e+=4,++n):e+=3}return e}function W(t){M=t,u.HEAP8=F=new Int8Array(t),u.HEAP16=new Int16Array(t),u.HEAP32=N=new Int32Array(t),u.HEAPU8=L=new Uint8Array(t),u.HEAPU16=new Uint16Array(t),u.HEAPU32=R=new Uint32Array(t),u.HEAPF32=new Float32Array(t),u.HEAPF64=j=new Float64Array(t)}T&&(M=u.buffer);var H=u.INITIAL_MEMORY||16777216;if(T)C=u.wasmMemory,M=u.buffer;else if(u.wasmMemory)C=u.wasmMemory;else if(!((C=new WebAssembly.Memory({initial:H/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw P("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),x&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");C&&(M=C.buffer),H=M.byteLength,W(M);var X,Y=[],K=[],Z=[],J=[];function Q(){return D||!1}function tt(){var t=u.preRun.shift();Y.unshift(t)}var et,nt=0,rt=null,it=null;function st(t){throw T?postMessage({cmd:"onAbort",arg:t}):u.onAbort&&u.onAbort(t),P(t="Aborted("+t+")"),z=!0,t=new WebAssembly.RuntimeError(t+". Build with -sASSERTIONS for more info."),c(t),t}function ot(){return et.startsWith("data:application/octet-stream;base64,")}function at(){var t=et;try{if(t==et&&E)return new Uint8Array(E);if(p)return p(t);throw"both async and sync fetching of the wasm failed"}catch(t){st(t)}}et="ort-wasm-threaded.wasm",ot()||(et=A(et));var ut={};function lt(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function ct(t){(t=ft.Vb[t])||st(),ft.mc(t)}function dt(t){var e=ft.Cc();if(!e)return 6;ft.ac.push(e),ft.Vb[t.Ub]=e,e.Ub=t.Ub;var n={cmd:"run",start_routine:t.Ic,arg:t.zc,pthread_ptr:t.Ub};return e.$b=()=>{n.time=performance.now(),e.postMessage(n,t.Nc)},e.loaded&&(e.$b(),delete e.$b),0}function ht(t){if(T)return Ht(1,1,t);Q()||(ft.oc(),u.onExit&&u.onExit(t),z=!0),y(t,new lt(t))}function pt(t,e){if(!e&&T)throw mt(t),"unwind";Q()||T||(_e(),gt(Z),me(0),re[1].length&&ie(1,10),re[2].length&&ie(2,10),ft.oc()),ht(t)}var ft={Yb:[],ac:[],qc:[],Vb:{},fc:function(){T&&ft.Ec()},Pc:function(){},Ec:function(){ft.receiveObjectTransfer=ft.Gc,ft.threadInitTLS=ft.pc,ft.setExitStatus=ft.nc,D=!1},nc:function(){},oc:function(){for(var t of Object.values(ft.Vb))ft.mc(t);for(t of ft.Yb)t.terminate();ft.Yb=[]},mc:function(t){var e=t.Ub;delete ft.Vb[e],ft.Yb.push(t),ft.ac.splice(ft.ac.indexOf(t),1),t.Ub=0,xe(e)},Gc:function(){},pc:function(){ft.qc.forEach((t=>t()))},Fc:function(t,e){t.onmessage=n=>{var r=(n=n.data).cmd;if(t.Ub&&(ft.Bc=t.Ub),n.targetThread&&n.targetThread!=pe()){var i=ft.Vb[n.Qc];i?i.postMessage(n,n.transferList):P('Internal error! Worker sent a message "'+r+'" to target pthread '+n.targetThread+", but that thread no longer exists!")}else"processProxyingQueue"===r?Bt(n.queue):"spawnThread"===r?dt(n):"cleanupThread"===r?ct(n.thread):"killThread"===r?(n=n.thread,r=ft.Vb[n],delete ft.Vb[n],r.terminate(),xe(n),ft.ac.splice(ft.ac.indexOf(r),1),r.Ub=0):"cancelThread"===r?ft.Vb[n.thread].postMessage({cmd:"cancel"}):"loaded"===r?(t.loaded=!0,e&&e(t),t.$b&&(t.$b(),delete t.$b)):"print"===r?I("Thread "+n.threadId+": "+n.text):"printErr"===r?P("Thread "+n.threadId+": "+n.text):"alert"===r?alert("Thread "+n.threadId+": "+n.text):"setimmediate"===n.target?t.postMessage(n):"onAbort"===r?u.onAbort&&u.onAbort(n.arg):r&&P("worker sent an unknown command "+r);ft.Bc=void 0},t.onerror=t=>{throw P("worker sent an error! "+t.filename+":"+t.lineno+": "+t.message),t},x&&(t.on("message",(function(e){t.onmessage({data:e})})),t.on("error",(function(e){t.onerror(e)})),t.on("detachedExit",(function(){}))),t.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||r,wasmMemory:C,wasmModule:$})},yc:function(){var t=A("ort-wasm-threaded.worker.js");ft.Yb.push(new Worker(t))},Cc:function(){return 0==ft.Yb.length&&(ft.yc(),ft.Fc(ft.Yb[0])),ft.Yb.pop()}};function gt(t){for(;0<t.length;)t.shift()(u)}function mt(t){if(T)return Ht(2,0,t);try{pt(t)}catch(t){t instanceof lt||"unwind"==t||y(1,t)}}u.PThread=ft,u.establishStackSpace=function(){var t=pe(),e=s()[t+44>>2>>>0];t=s()[t+48>>2>>>0],Ae(e,e-t),Oe(e)};var _t=[];function bt(t){var e=_t[t];return e||(t>=_t.length&&(_t.length=t+1),_t[t]=e=X.get(t)),e}u.invokeEntryPoint=function(t,e){t=bt(t)(e),Q()?ft.nc(t):Te(t)};var yt,wt,vt=[],xt=0,Tt=0;function St(t){this.Zb=t,this.Sb=t-24,this.xc=function(t){o()[this.Sb+4>>2>>>0]=t},this.bc=function(){return o()[this.Sb+4>>2>>>0]},this.wc=function(t){o()[this.Sb+8>>2>>>0]=t},this.Dc=function(){return o()[this.Sb+8>>2>>>0]},this.rc=function(){s()[this.Sb>>2>>>0]=0},this.hc=function(t){t=t?1:0,e()[(this.Sb+12|0)>>>0]=t},this.uc=function(){return 0!=e()[(this.Sb+12|0)>>>0]},this.ic=function(t){t=t?1:0,e()[(this.Sb+13|0)>>>0]=t},this.kc=function(){return 0!=e()[(this.Sb+13|0)>>>0]},this.fc=function(t,e){this.cc(0),this.xc(t),this.wc(e),this.rc(),this.hc(!1),this.ic(!1)},this.sc=function(){Atomics.add(s(),this.Sb>>2,1)},this.Hc=function(){return 1===Atomics.sub(s(),this.Sb>>2,1)},this.cc=function(t){o()[this.Sb+16>>2>>>0]=t},this.tc=function(){return o()[this.Sb+16>>2>>>0]},this.vc=function(){if(Pe(this.bc()))return o()[this.Zb>>2>>>0];var t=this.tc();return 0!==t?t:this.Zb}}function At(t){return ge(new St(t).Sb)}function kt(t,e,n,r){return T?Ht(3,1,t,e,n,r):Ot(t,e,n,r)}function Ot(t,e,n,r){if("undefined"==typeof SharedArrayBuffer)return P("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var i=[];return T&&0===i.length?kt(t,e,n,r):(t={Ic:n,Ub:t,zc:r,Nc:i},T?(t.Oc="spawnThread",postMessage(t,i),0):dt(t))}function Et(t,e,n){return T?Ht(4,1,t,e,n):0}function It(t,e){if(T)return Ht(5,1,t,e)}function Pt(t,e){if(T)return Ht(6,1,t,e)}function Dt(t,e,n){if(T)return Ht(7,1,t,e,n)}function Ct(t,e,n){return T?Ht(8,1,t,e,n):0}function $t(t,e){if(T)return Ht(9,1,t,e)}function Mt(t,e,n){if(T)return Ht(10,1,t,e,n)}function Ft(t,e,n,r){if(T)return Ht(11,1,t,e,n,r)}function Lt(t,e,n,r){if(T)return Ht(12,1,t,e,n,r)}function Nt(t,e,n,r){if(T)return Ht(13,1,t,e,n,r)}function Rt(t){if(T)return Ht(14,1,t)}function jt(t,e){if(T)return Ht(15,1,t,e)}function zt(t,e,n){if(T)return Ht(16,1,t,e,n)}function Bt(t){Atomics.store(s(),t>>2,1),pe()&&ve(t),Atomics.compareExchange(s(),t>>2,1,0)}function Ut(t){return o()[t>>>2]+4294967296*s()[t+4>>>2]}function Vt(t,e,n,r,i,s){return T?Ht(17,1,t,e,n,r,i,s):-52}function Gt(t,e,n,r,i,s){if(T)return Ht(18,1,t,e,n,r,i,s)}function qt(t){var n=q(t)+1,r=fe(n);return r&&G(t,e(),r,n),r}function Wt(t,e,n){function r(t){return(t=t.toTimeString().match(/\(([A-Za-z ]+)\)$/))?t[1]:"GMT"}if(T)return Ht(19,1,t,e,n);var i=(new Date).getFullYear(),a=new Date(i,0,1),u=new Date(i,6,1);i=a.getTimezoneOffset();var l=u.getTimezoneOffset(),c=Math.max(i,l);s()[t>>2>>>0]=60*c,s()[e>>2>>>0]=Number(i!=l),t=r(a),e=r(u),t=qt(t),e=qt(e),l<i?(o()[n>>2>>>0]=t,o()[n+4>>2>>>0]=e):(o()[n>>2>>>0]=e,o()[n+4>>2>>>0]=t)}function Ht(t,e){var n=arguments.length-2,r=arguments;return function(t){var e=ke();return t=t(),Oe(e),t}((()=>{for(var i=Ee(8*n),s=i>>3,o=0;o<n;o++){var u=r[2+o];a()[s+o>>>0]=u}return we(t,n,i,e)}))}u.executeNotifiedProxyingQueue=Bt,wt=x?()=>{var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:T?()=>performance.now()-u.__performance_now_clock_drift:()=>performance.now();var Xt,Yt=[],Kt={};function Zt(){if(!Xt){var t,e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:b||"./this.program"};for(t in Kt)void 0===Kt[t]?delete e[t]:e[t]=Kt[t];var n=[];for(t in e)n.push(t+"="+e[t]);Xt=n}return Xt}function Jt(t,n){if(T)return Ht(20,1,t,n);var r=0;return Zt().forEach((function(i,s){var a=n+r;for(s=o()[t+4*s>>2>>>0]=a,a=0;a<i.length;++a)e()[(0|s++)>>>0]=i.charCodeAt(a);e()[(0|s)>>>0]=0,r+=i.length+1})),0}function Qt(t,e){if(T)return Ht(21,1,t,e);var n=Zt();o()[t>>2>>>0]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),o()[e>>2>>>0]=r,0}function te(t){return T?Ht(22,1,t):52}function ee(t,e,n,r){return T?Ht(23,1,t,e,n,r):52}function ne(t,e,n,r,i){return T?Ht(24,1,t,e,n,r,i):70}var re=[null,[],[]];function ie(t,e){var n=re[t];0===e||10===e?((1===t?I:P)(U(n,0)),n.length=0):n.push(e)}function se(t,e,n,r){if(T)return Ht(25,1,t,e,n,r);for(var s=0,a=0;a<n;a++){var u=o()[e>>2>>>0],l=o()[e+4>>2>>>0];e+=8;for(var c=0;c<l;c++)ie(t,i()[u+c>>>0]);s+=l}return o()[r>>2>>>0]=s,0}var oe=0;function ae(t){return 0==t%4&&(0!=t%100||0==t%400)}var ue=[31,29,31,30,31,30,31,31,30,31,30,31],le=[31,28,31,30,31,30,31,31,30,31,30,31];function ce(t,n,r,i){function o(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function a(t,e){return o(t,e,"0")}function u(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function l(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function c(t){var e=t.Wb;for(t=new Date(new Date(t.Xb+1900,0,1).getTime());0<e;){var n=t.getMonth(),r=(ae(t.getFullYear())?ue:le)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return n=new Date(t.getFullYear()+1,0,4),e=l(new Date(t.getFullYear(),0,4)),n=l(n),0>=u(e,t)?0>=u(n,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var d=s()[i+40>>2>>>0];for(var h in i={Lc:s()[i>>2>>>0],Kc:s()[i+4>>2>>>0],dc:s()[i+8>>2>>>0],jc:s()[i+12>>2>>>0],ec:s()[i+16>>2>>>0],Xb:s()[i+20>>2>>>0],Tb:s()[i+24>>2>>>0],Wb:s()[i+28>>2>>>0],Rc:s()[i+32>>2>>>0],Jc:s()[i+36>>2>>>0],Mc:d?V(d):""},r=V(r),d={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})r=r.replace(new RegExp(h,"g"),d[h]);var p="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),f="January February March April May June July August September October November December".split(" ");for(h in d={"%a":function(t){return p[t.Tb].substring(0,3)},"%A":function(t){return p[t.Tb]},"%b":function(t){return f[t.ec].substring(0,3)},"%B":function(t){return f[t.ec]},"%C":function(t){return a((t.Xb+1900)/100|0,2)},"%d":function(t){return a(t.jc,2)},"%e":function(t){return o(t.jc,2," ")},"%g":function(t){return c(t).toString().substring(2)},"%G":function(t){return c(t)},"%H":function(t){return a(t.dc,2)},"%I":function(t){return 0==(t=t.dc)?t=12:12<t&&(t-=12),a(t,2)},"%j":function(t){for(var e=0,n=0;n<=t.ec-1;e+=(ae(t.Xb+1900)?ue:le)[n++]);return a(t.jc+e,3)},"%m":function(t){return a(t.ec+1,2)},"%M":function(t){return a(t.Kc,2)},"%n":function(){return"\n"},"%p":function(t){return 0<=t.dc&&12>t.dc?"AM":"PM"},"%S":function(t){return a(t.Lc,2)},"%t":function(){return"\t"},"%u":function(t){return t.Tb||7},"%U":function(t){return a(Math.floor((t.Wb+7-t.Tb)/7),2)},"%V":function(t){var e=Math.floor((t.Wb+7-(t.Tb+6)%7)/7);if(2>=(t.Tb+371-t.Wb-2)%7&&e++,e)53==e&&(4==(n=(t.Tb+371-t.Wb)%7)||3==n&&ae(t.Xb)||(e=1));else{e=52;var n=(t.Tb+7-t.Wb-1)%7;(4==n||5==n&&ae(t.Xb%400-1))&&e++}return a(e,2)},"%w":function(t){return t.Tb},"%W":function(t){return a(Math.floor((t.Wb+7-(t.Tb+6)%7)/7),2)},"%y":function(t){return(t.Xb+1900).toString().substring(2)},"%Y":function(t){return t.Xb+1900},"%z":function(t){var e=0<=(t=t.Jc);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.Mc},"%%":function(){return"%"}},r=r.replace(/%%/g,"\0\0"),d)r.includes(h)&&(r=r.replace(new RegExp(h,"g"),d[h](i)));return h=function(t){var e=Array(q(t)+1);return G(t,e,0,e.length),e}(r=r.replace(/\0\0/g,"%")),h.length>n?0:(function(t,n){e().set(t,n>>>0)}(h,t),h.length-1)}ft.fc();var de=[null,ht,mt,kt,Et,It,Pt,Dt,Ct,$t,Mt,Ft,Lt,Nt,Rt,jt,zt,Vt,Gt,Wt,Jt,Qt,te,ee,ne,se],he={b:function(t){return fe(t+24)+24},n:function(t){return(t=new St(t)).uc()||(t.hc(!0),xt--),t.ic(!1),vt.push(t),t.sc(),t.vc()},ma:function(t){throw P("Unexpected exception thrown, this is not properly supported - aborting"),z=!0,t},x:function(){Se(0);var t=vt.pop();if(t.Hc()&&!t.kc()){var e=t.Dc();e&&bt(e)(t.Zb),At(t.Zb)}Tt=0},e:function(){var t=Tt;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),i=0;i<r.length;i++){var s=r[i];if(0===s||s===n)break;if(Ie(s,n,e.Sb+16))return oe=s,t}return oe=n,t},l:function(){var t=Tt;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),i=0;i<r.length;i++){var s=r[i];if(0===s||s===n)break;if(Ie(s,n,e.Sb+16))return oe=s,t}return oe=n,t},h:function(){var t=Tt;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),i=0;i<r.length;i++){var s=r[i];if(0===s||s===n)break;if(Ie(s,n,e.Sb+16))return oe=s,t}return oe=n,t},t:At,M:function(){var t=vt.pop();t||st("no exception to throw");var e=t.Zb;throw t.kc()||(vt.push(t),t.ic(!0),t.hc(!1),xt++),Tt=e,e},c:function(t,e,n){throw new St(t).fc(e,n),Tt=t,xt++,t},pa:function(){return xt},Fa:function(t){be(t,!v,1,!w),ft.pc()},T:function(t){T?postMessage({cmd:"cleanupThread",thread:t}):ct(t)},xa:Ot,j:function(t){throw Tt||(Tt=t),t},H:Et,Ma:It,ua:Pt,wa:Dt,oa:Ct,Ka:$t,Ca:Mt,Ja:Ft,V:Lt,va:Nt,sa:Rt,La:jt,ta:zt,Ta:function(){},X:function(){st("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ua:function(){st("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},W:function(){return Date.now()},ya:function(){return 2097152},Oa:function(){return!0},za:function(t,e,n,r){if(t==e)setTimeout((()=>Bt(r)));else if(T)postMessage({targetThread:t,cmd:"processProxyingQueue",queue:r});else{if(!(t=ft.Vb[t]))return;t.postMessage({cmd:"processProxyingQueue",queue:r})}return 1},Ea:function(){return-1},Pa:function(t,e){t=new Date(1e3*Ut(t)),s()[e>>2>>>0]=t.getUTCSeconds(),s()[e+4>>2>>>0]=t.getUTCMinutes(),s()[e+8>>2>>>0]=t.getUTCHours(),s()[e+12>>2>>>0]=t.getUTCDate(),s()[e+16>>2>>>0]=t.getUTCMonth(),s()[e+20>>2>>>0]=t.getUTCFullYear()-1900,s()[e+24>>2>>>0]=t.getUTCDay(),t=(t.getTime()-Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,s()[e+28>>2>>>0]=t},Qa:function(t,e){t=new Date(1e3*Ut(t)),s()[e>>2>>>0]=t.getSeconds(),s()[e+4>>2>>>0]=t.getMinutes(),s()[e+8>>2>>>0]=t.getHours(),s()[e+12>>2>>>0]=t.getDate(),s()[e+16>>2>>>0]=t.getMonth(),s()[e+20>>2>>>0]=t.getFullYear()-1900,s()[e+24>>2>>>0]=t.getDay();var n=new Date(t.getFullYear(),0,1),r=(t.getTime()-n.getTime())/864e5|0;s()[e+28>>2>>>0]=r,s()[e+36>>2>>>0]=-60*t.getTimezoneOffset(),r=new Date(t.getFullYear(),6,1).getTimezoneOffset(),t=0|(r!=(n=n.getTimezoneOffset())&&t.getTimezoneOffset()==Math.min(n,r)),s()[e+32>>2>>>0]=t},Ra:function(t){var e=new Date(s()[t+20>>2>>>0]+1900,s()[t+16>>2>>>0],s()[t+12>>2>>>0],s()[t+8>>2>>>0],s()[t+4>>2>>>0],s()[t>>2>>>0],0),n=s()[t+32>>2>>>0],r=e.getTimezoneOffset(),i=new Date(e.getFullYear(),0,1),o=new Date(e.getFullYear(),6,1).getTimezoneOffset(),a=i.getTimezoneOffset(),u=Math.min(a,o);return 0>n?s()[t+32>>2>>>0]=Number(o!=a&&u==r):0<n!=(u==r)&&(o=Math.max(a,o),e.setTime(e.getTime()+6e4*((0<n?u:o)-r))),s()[t+24>>2>>>0]=e.getDay(),n=(e.getTime()-i.getTime())/864e5|0,s()[t+28>>2>>>0]=n,s()[t>>2>>>0]=e.getSeconds(),s()[t+4>>2>>>0]=e.getMinutes(),s()[t+8>>2>>>0]=e.getHours(),s()[t+12>>2>>>0]=e.getDate(),s()[t+16>>2>>>0]=e.getMonth(),e.getTime()/1e3|0},Aa:Vt,Ba:Gt,Sa:function t(e,n,r){t.Ac||(t.Ac=!0,Wt(e,n,r))},y:function(){st("")},U:function(){if(!x&&!v){var t="Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread";yt||(yt={}),yt[t]||(yt[t]=1,x&&(t="warning: "+t),P(t))}},ra:function(){return 4294901760},B:wt,Ia:function(t,e,n){i().copyWithin(t>>>0,e>>>0,e+n>>>0)},F:function(){return x?n(3993).cpus().length:navigator.hardwareConcurrency},Da:function(t,e,n){Yt.length=e,n>>=3;for(var r=0;r<e;r++)Yt[r]=a()[n+r>>>0];return(0>t?ut[-t-1]:de[t]).apply(null,Yt)},qa:function(t){var e=i().length;if((t>>>=0)<=e||4294901760<t)return!1;for(var n=1;4>=n;n*=2){var r=e*(1+.2/n);r=Math.min(r,t+100663296);var s=Math;r=Math.max(t,r),s=s.min.call(s,4294901760,r+(65536-r%65536)%65536);t:{try{C.grow(s-M.byteLength+65535>>>16),W(C.buffer);var o=1;break t}catch(t){}o=void 0}if(o)return!0}return!1},Na:function(){throw"unwind"},Ga:Jt,Ha:Qt,J:pt,I:te,S:ee,ga:ne,R:se,d:function(){return oe},na:function t(r,i){t.lc||(t.lc=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);return()=>(crypto.getRandomValues(t),t[0])}if(x)try{var e=n(Object(function(){var t=new Error("Cannot find module 'crypto'");throw t.code="MODULE_NOT_FOUND",t}()));return()=>e.randomBytes(1)[0]}catch(t){}return()=>st("randomDevice")}());for(var s=0;s<i;s++)e()[(r+s|0)>>>0]=t.lc();return 0},ia:function(t,e,n){var r=ke();try{return bt(t)(e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},ja:function(t,e,n){var r=ke();try{return bt(t)(e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},K:function(t){var e=ke();try{return bt(t)()}catch(t){if(Oe(e),t!==t+0)throw t;Se(1,0)}},f:function(t,e){var n=ke();try{return bt(t)(e)}catch(t){if(Oe(n),t!==t+0)throw t;Se(1,0)}},P:function(t,e,n){var r=ke();try{return bt(t)(e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},Q:function(t,e,n){var r=ke();try{return bt(t)(e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},k:function(t,e,n){var r=ke();try{return bt(t)(e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},p:function(t,e,n,r){var i=ke();try{return bt(t)(e,n,r)}catch(t){if(Oe(i),t!==t+0)throw t;Se(1,0)}},q:function(t,e,n,r,i){var s=ke();try{return bt(t)(e,n,r,i)}catch(t){if(Oe(s),t!==t+0)throw t;Se(1,0)}},N:function(t,e,n,r,i,s){var o=ke();try{return bt(t)(e,n,r,i,s)}catch(t){if(Oe(o),t!==t+0)throw t;Se(1,0)}},s:function(t,e,n,r,i,s){var o=ke();try{return bt(t)(e,n,r,i,s)}catch(t){if(Oe(o),t!==t+0)throw t;Se(1,0)}},w:function(t,e,n,r,i,s,o){var a=ke();try{return bt(t)(e,n,r,i,s,o)}catch(t){if(Oe(a),t!==t+0)throw t;Se(1,0)}},L:function(t,e,n,r,i,s,o,a){var u=ke();try{return bt(t)(e,n,r,i,s,o,a)}catch(t){if(Oe(u),t!==t+0)throw t;Se(1,0)}},E:function(t,e,n,r,i,s,o,a,u,l,c,d){var h=ke();try{return bt(t)(e,n,r,i,s,o,a,u,l,c,d)}catch(t){if(Oe(h),t!==t+0)throw t;Se(1,0)}},aa:function(t,e,n,r,i,s,o,a){var u=ke();try{return je(t,e,n,r,i,s,o,a)}catch(t){if(Oe(u),t!==t+0)throw t;Se(1,0)}},_:function(t,e,n,r,i,s,o){var a=ke();try{return Ce(t,e,n,r,i,s,o)}catch(t){if(Oe(a),t!==t+0)throw t;Se(1,0)}},Z:function(t,e,n,r,i){var s=ke();try{return ze(t,e,n,r,i)}catch(t){if(Oe(s),t!==t+0)throw t;Se(1,0)}},ca:function(t,e,n,r){var i=ke();try{return Ne(t,e,n,r)}catch(t){if(Oe(i),t!==t+0)throw t;Se(1,0)}},$:function(t){var e=ke();try{return De(t)}catch(t){if(Oe(e),t!==t+0)throw t;Se(1,0)}},ba:function(t,e){var n=ke();try{return Re(t,e)}catch(t){if(Oe(n),t!==t+0)throw t;Se(1,0)}},Y:function(t,e,n){var r=ke();try{return $e(t,e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},g:function(t){var e=ke();try{bt(t)()}catch(t){if(Oe(e),t!==t+0)throw t;Se(1,0)}},r:function(t,e){var n=ke();try{bt(t)(e)}catch(t){if(Oe(n),t!==t+0)throw t;Se(1,0)}},i:function(t,e,n){var r=ke();try{bt(t)(e,n)}catch(t){if(Oe(r),t!==t+0)throw t;Se(1,0)}},ha:function(t,e,n,r){var i=ke();try{bt(t)(e,n,r)}catch(t){if(Oe(i),t!==t+0)throw t;Se(1,0)}},m:function(t,e,n,r){var i=ke();try{bt(t)(e,n,r)}catch(t){if(Oe(i),t!==t+0)throw t;Se(1,0)}},v:function(t,e,n,r,i){var s=ke();try{bt(t)(e,n,r,i)}catch(t){if(Oe(s),t!==t+0)throw t;Se(1,0)}},u:function(t,e,n,r,i,s){var o=ke();try{bt(t)(e,n,r,i,s)}catch(t){if(Oe(o),t!==t+0)throw t;Se(1,0)}},O:function(t,e,n,r,i,s,o){var a=ke();try{bt(t)(e,n,r,i,s,o)}catch(t){if(Oe(a),t!==t+0)throw t;Se(1,0)}},A:function(t,e,n,r,i,s,o,a){var u=ke();try{bt(t)(e,n,r,i,s,o,a)}catch(t){if(Oe(u),t!==t+0)throw t;Se(1,0)}},ka:function(t,e,n,r,i,s,o,a,u){var l=ke();try{bt(t)(e,n,r,i,s,o,a,u)}catch(t){if(Oe(l),t!==t+0)throw t;Se(1,0)}},C:function(t,e,n,r,i,s,o,a,u,l,c){var d=ke();try{bt(t)(e,n,r,i,s,o,a,u,l,c)}catch(t){if(Oe(d),t!==t+0)throw t;Se(1,0)}},D:function(t,e,n,r,i,s,o,a,u,l,c,d,h,p,f,g){var m=ke();try{bt(t)(e,n,r,i,s,o,a,u,l,c,d,h,p,f,g)}catch(t){if(Oe(m),t!==t+0)throw t;Se(1,0)}},fa:function(t,e,n,r,i,s,o,a){var u=ke();try{Me(t,e,n,r,i,s,o,a)}catch(t){if(Oe(u),t!==t+0)throw t;Se(1,0)}},da:function(t,e,n,r,i,s,o,a,u,l,c,d){var h=ke();try{Le(t,e,n,r,i,s,o,a,u,l,c,d)}catch(t){if(Oe(h),t!==t+0)throw t;Se(1,0)}},ea:function(t,e,n,r,i,s){var o=ke();try{Fe(t,e,n,r,i,s)}catch(t){if(Oe(o),t!==t+0)throw t;Se(1,0)}},o:function(t){return t},a:C||u.wasmMemory,G:function(t){oe=t},la:ce,z:function(t,e,n,r){return ce(t,e,n,r)}};!function(){function t(t,e){u.asm=t.exports,ft.qc.push(u.asm.sb),X=u.asm.ub,K.unshift(u.asm.Va),$=e,T||(nt--,u.monitorRunDependencies&&u.monitorRunDependencies(nt),0==nt&&(null!==rt&&(clearInterval(rt),rt=null),it&&(t=it,it=null,t())))}function e(e){t(e.instance,e.module)}function n(t){return function(){if(!E&&(w||v)){if("function"==typeof fetch&&!et.startsWith("file://"))return fetch(et,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+et+"'";return t.arrayBuffer()})).catch((function(){return at()}));if(h)return new Promise((function(t,e){h(et,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return at()}))}().then((function(t){return WebAssembly.instantiate(t,r)})).then((function(t){return t})).then(t,(function(t){P("failed to asynchronously prepare wasm: "+t),st(t)}))}var r={a:he};if(T||(nt++,u.monitorRunDependencies&&u.monitorRunDependencies(nt)),u.instantiateWasm)try{return u.instantiateWasm(r,t)}catch(t){return P("Module.instantiateWasm callback failed with error: "+t),!1}(E||"function"!=typeof WebAssembly.instantiateStreaming||ot()||et.startsWith("file://")||x||"function"!=typeof fetch?n(e):fetch(et,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(e,(function(t){return P("wasm streaming compile failed: "+t),P("falling back to ArrayBuffer instantiation"),n(e)}))}))).catch(c)}(),u.___wasm_call_ctors=function(){return(u.___wasm_call_ctors=u.asm.Va).apply(null,arguments)},u._OrtInit=function(){return(u._OrtInit=u.asm.Wa).apply(null,arguments)},u._OrtCreateSessionOptions=function(){return(u._OrtCreateSessionOptions=u.asm.Xa).apply(null,arguments)},u._OrtAppendExecutionProvider=function(){return(u._OrtAppendExecutionProvider=u.asm.Ya).apply(null,arguments)},u._OrtAddSessionConfigEntry=function(){return(u._OrtAddSessionConfigEntry=u.asm.Za).apply(null,arguments)},u._OrtReleaseSessionOptions=function(){return(u._OrtReleaseSessionOptions=u.asm._a).apply(null,arguments)},u._OrtCreateSession=function(){return(u._OrtCreateSession=u.asm.$a).apply(null,arguments)},u._OrtReleaseSession=function(){return(u._OrtReleaseSession=u.asm.ab).apply(null,arguments)},u._OrtGetInputCount=function(){return(u._OrtGetInputCount=u.asm.bb).apply(null,arguments)},u._OrtGetOutputCount=function(){return(u._OrtGetOutputCount=u.asm.cb).apply(null,arguments)},u._OrtGetInputName=function(){return(u._OrtGetInputName=u.asm.db).apply(null,arguments)},u._OrtGetOutputName=function(){return(u._OrtGetOutputName=u.asm.eb).apply(null,arguments)},u._OrtFree=function(){return(u._OrtFree=u.asm.fb).apply(null,arguments)},u._OrtCreateTensor=function(){return(u._OrtCreateTensor=u.asm.gb).apply(null,arguments)},u._OrtGetTensorData=function(){return(u._OrtGetTensorData=u.asm.hb).apply(null,arguments)},u._OrtReleaseTensor=function(){return(u._OrtReleaseTensor=u.asm.ib).apply(null,arguments)},u._OrtCreateRunOptions=function(){return(u._OrtCreateRunOptions=u.asm.jb).apply(null,arguments)},u._OrtAddRunConfigEntry=function(){return(u._OrtAddRunConfigEntry=u.asm.kb).apply(null,arguments)},u._OrtReleaseRunOptions=function(){return(u._OrtReleaseRunOptions=u.asm.lb).apply(null,arguments)},u._OrtRun=function(){return(u._OrtRun=u.asm.mb).apply(null,arguments)},u._OrtEndProfiling=function(){return(u._OrtEndProfiling=u.asm.nb).apply(null,arguments)};var pe=u._pthread_self=function(){return(pe=u._pthread_self=u.asm.ob).apply(null,arguments)},fe=u._malloc=function(){return(fe=u._malloc=u.asm.pb).apply(null,arguments)},ge=u._free=function(){return(ge=u._free=u.asm.qb).apply(null,arguments)},me=u._fflush=function(){return(me=u._fflush=u.asm.rb).apply(null,arguments)};u.__emscripten_tls_init=function(){return(u.__emscripten_tls_init=u.asm.sb).apply(null,arguments)};var _e=u.___funcs_on_exit=function(){return(_e=u.___funcs_on_exit=u.asm.tb).apply(null,arguments)},be=u.__emscripten_thread_init=function(){return(be=u.__emscripten_thread_init=u.asm.vb).apply(null,arguments)};u.__emscripten_thread_crashed=function(){return(u.__emscripten_thread_crashed=u.asm.wb).apply(null,arguments)};var ye,we=u._emscripten_run_in_main_runtime_thread_js=function(){return(we=u._emscripten_run_in_main_runtime_thread_js=u.asm.xb).apply(null,arguments)},ve=u.__emscripten_proxy_execute_task_queue=function(){return(ve=u.__emscripten_proxy_execute_task_queue=u.asm.yb).apply(null,arguments)},xe=u.__emscripten_thread_free_data=function(){return(xe=u.__emscripten_thread_free_data=u.asm.zb).apply(null,arguments)},Te=u.__emscripten_thread_exit=function(){return(Te=u.__emscripten_thread_exit=u.asm.Ab).apply(null,arguments)},Se=u._setThrew=function(){return(Se=u._setThrew=u.asm.Bb).apply(null,arguments)},Ae=u._emscripten_stack_set_limits=function(){return(Ae=u._emscripten_stack_set_limits=u.asm.Cb).apply(null,arguments)},ke=u.stackSave=function(){return(ke=u.stackSave=u.asm.Db).apply(null,arguments)},Oe=u.stackRestore=function(){return(Oe=u.stackRestore=u.asm.Eb).apply(null,arguments)},Ee=u.stackAlloc=function(){return(Ee=u.stackAlloc=u.asm.Fb).apply(null,arguments)},Ie=u.___cxa_can_catch=function(){return(Ie=u.___cxa_can_catch=u.asm.Gb).apply(null,arguments)},Pe=u.___cxa_is_pointer_type=function(){return(Pe=u.___cxa_is_pointer_type=u.asm.Hb).apply(null,arguments)},De=u.dynCall_j=function(){return(De=u.dynCall_j=u.asm.Ib).apply(null,arguments)},Ce=u.dynCall_iiiiij=function(){return(Ce=u.dynCall_iiiiij=u.asm.Jb).apply(null,arguments)},$e=u.dynCall_jii=function(){return($e=u.dynCall_jii=u.asm.Kb).apply(null,arguments)},Me=u.dynCall_viiiiij=function(){return(Me=u.dynCall_viiiiij=u.asm.Lb).apply(null,arguments)},Fe=u.dynCall_vjji=function(){return(Fe=u.dynCall_vjji=u.asm.Mb).apply(null,arguments)},Le=u.dynCall_viiijjjii=function(){return(Le=u.dynCall_viiijjjii=u.asm.Nb).apply(null,arguments)},Ne=u.dynCall_iij=function(){return(Ne=u.dynCall_iij=u.asm.Ob).apply(null,arguments)},Re=u.dynCall_ji=function(){return(Re=u.dynCall_ji=u.asm.Pb).apply(null,arguments)},je=u.dynCall_iiiiiij=function(){return(je=u.dynCall_iiiiiij=u.asm.Qb).apply(null,arguments)},ze=u.dynCall_iiij=function(){return(ze=u.dynCall_iiij=u.asm.Rb).apply(null,arguments)};function Be(){function t(){if(!ye&&(ye=!0,u.calledRun=!0,!z)&&(T||gt(K),l(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),!T)){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;){var t=u.postRun.shift();J.unshift(t)}gt(J)}}if(!(0<nt))if(T)l(u),T||gt(K),postMessage({cmd:"loaded"});else{if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)tt();gt(Y),0<nt||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),t()}),1)):t())}}if(u.UTF8ToString=V,u.stringToUTF8=function(t,e,n){return G(t,i(),e,n)},u.lengthBytesUTF8=q,u.keepRuntimeAlive=Q,u.wasmMemory=C,u.stackSave=ke,u.stackRestore=Oe,u.stackAlloc=Ee,u.ExitStatus=lt,u.PThread=ft,it=function t(){ye||Be(),ye||(it=t)},u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);0<u.preInit.length;)u.preInit.pop()();return Be(),t.ready});t.exports=i},932:(t,e,n)=>{var r,i=(r=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(t){var e,i,s;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){i=t,s=e}));var o,a,u,l,c,d,h=Object.assign({},e),p="./this.program",f=(t,e)=>{throw e},g="object"==typeof window,m="function"==typeof importScripts,_="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,b="";_?(b=m?n(908).dirname(b)+"/":"//",d=()=>{c||(l=n(1384),c=n(908))},o=function(t,e){return d(),t=c.normalize(t),l.readFileSync(t,e?void 0:"utf8")},u=t=>((t=o(t,!0)).buffer||(t=new Uint8Array(t)),t),a=(t,e,n)=>{d(),t=c.normalize(t),l.readFile(t,(function(t,r){t?n(t):e(r.buffer)}))},1<process.argv.length&&(p=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof Z))throw t})),process.on("unhandledRejection",(function(t){throw t})),f=(t,e)=>{if(x||0<B)throw process.exitCode=t,e;e instanceof Z||v("exiting due to exception: "+e),process.exit(t)},e.inspect=function(){return"[Emscripten Module object]"}):(g||m)&&(m?b=self.location.href:"undefined"!=typeof document&&document.currentScript&&(b=document.currentScript.src),r&&(b=r),b=0!==b.indexOf("blob:")?b.substr(0,b.replace(/[?#].*/,"").lastIndexOf("/")+1):"",o=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},m&&(u=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),a=(t,e,n)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)});var y,w=e.print||console.log.bind(console),v=e.printErr||console.warn.bind(console);Object.assign(e,h),h=null,e.thisProgram&&(p=e.thisProgram),e.quit&&(f=e.quit),e.wasmBinary&&(y=e.wasmBinary);var x=e.noExitRuntime||!1;"object"!=typeof WebAssembly&&H("no native wasm support detected");var T,S,A,k,O,E,I=!1,P="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function D(t,e,n){var r=(e>>>=0)+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.buffer&&P)return P.decode(t.subarray(e,n));for(r="";e<n;){var i=t[e++];if(128&i){var s=63&t[e++];if(192==(224&i))r+=String.fromCharCode((31&i)<<6|s);else{var o=63&t[e++];65536>(i=224==(240&i)?(15&i)<<12|s<<6|o:(7&i)<<18|s<<12|o<<6|63&t[e++])?r+=String.fromCharCode(i):(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i))}}else r+=String.fromCharCode(i)}return r}function C(t,e){return(t>>>=0)?D(k,t,e):""}function $(t,e,n,r){if(!(0<r))return 0;var i=n>>>=0;r=n+r-1;for(var s=0;s<t.length;++s){var o=t.charCodeAt(s);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++s)),127>=o){if(n>=r)break;e[n++>>>0]=o}else{if(2047>=o){if(n+1>=r)break;e[n++>>>0]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++>>>0]=224|o>>12}else{if(n+3>=r)break;e[n++>>>0]=240|o>>18,e[n++>>>0]=128|o>>12&63}e[n++>>>0]=128|o>>6&63}e[n++>>>0]=128|63&o}}return e[n>>>0]=0,n-i}function M(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);127>=r?e++:2047>=r?e+=2:55296<=r&&57343>=r?(e+=4,++n):e+=3}return e}function F(){var t=T.buffer;S=t,e.HEAP8=A=new Int8Array(t),e.HEAP16=new Int16Array(t),e.HEAP32=O=new Int32Array(t),e.HEAPU8=k=new Uint8Array(t),e.HEAPU16=new Uint16Array(t),e.HEAPU32=E=new Uint32Array(t),e.HEAPF32=new Float32Array(t),e.HEAPF64=new Float64Array(t)}var L,N=[],R=[],j=[],z=[],B=0;function U(){var t=e.preRun.shift();N.unshift(t)}var V,G=0,q=null,W=null;function H(t){throw e.onAbort&&e.onAbort(t),v(t="Aborted("+t+")"),I=!0,t=new WebAssembly.RuntimeError(t+". Build with -sASSERTIONS for more info."),s(t),t}function X(){return V.startsWith("data:application/octet-stream;base64,")}if(V="ort-wasm.wasm",!X()){var Y=V;V=e.locateFile?e.locateFile(Y,b):b+Y}function K(){var t=V;try{if(t==V&&y)return new Uint8Array(y);if(u)return u(t);throw"both async and sync fetching of the wasm failed"}catch(t){H(t)}}function Z(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function J(t){for(;0<t.length;)t.shift()(e)}var Q=[],tt=0,et=0;function nt(t){this.Db=t,this.zb=t-24,this.Ub=function(t){E[this.zb+4>>2>>>0]=t},this.Eb=function(){return E[this.zb+4>>2>>>0]},this.Sb=function(t){E[this.zb+8>>2>>>0]=t},this.Wb=function(){return E[this.zb+8>>2>>>0]},this.Tb=function(){O[this.zb>>2>>>0]=0},this.Ib=function(t){A[(this.zb+12|0)>>>0]=t?1:0},this.Pb=function(){return 0!=A[(this.zb+12|0)>>>0]},this.Jb=function(t){A[(this.zb+13|0)>>>0]=t?1:0},this.Lb=function(){return 0!=A[(this.zb+13|0)>>>0]},this.Rb=function(t,e){this.Fb(0),this.Ub(t),this.Sb(e),this.Tb(),this.Ib(!1),this.Jb(!1)},this.Nb=function(){O[this.zb>>2>>>0]+=1},this.Xb=function(){var t=O[this.zb>>2>>>0];return O[this.zb>>2>>>0]=t-1,1===t},this.Fb=function(t){E[this.zb+16>>2>>>0]=t},this.Ob=function(){return E[this.zb+16>>2>>>0]},this.Qb=function(){if(Et(this.Eb()))return E[this.Db>>2>>>0];var t=this.Ob();return 0!==t?t:this.Db}}function rt(t){return wt(new nt(t).zb)}var it=[];function st(t){var e=it[t];return e||(t>=it.length&&(it.length=t+1),it[t]=e=L.get(t)),e}function ot(t){var e=M(t)+1,n=yt(e);return n&&$(t,A,n,e),n}var at={};function ut(){if(!lt){var t,e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:p||"./this.program"};for(t in at)void 0===at[t]?delete e[t]:e[t]=at[t];var n=[];for(t in e)n.push(t+"="+e[t]);lt=n}return lt}var lt,ct=[null,[],[]];function dt(t,e){var n=ct[t];0===e||10===e?((1===t?w:v)(D(n,0)),n.length=0):n.push(e)}var ht=0;function pt(t){return 0==t%4&&(0!=t%100||0==t%400)}var ft=[31,29,31,30,31,30,31,31,30,31,30,31],gt=[31,28,31,30,31,30,31,31,30,31,30,31];function mt(t,e,n,r){function i(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function s(t,e){return i(t,e,"0")}function o(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function a(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function u(t){var e=t.Bb;for(t=new Date(new Date(t.Cb+1900,0,1).getTime());0<e;){var n=t.getMonth(),r=(pt(t.getFullYear())?ft:gt)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return n=new Date(t.getFullYear()+1,0,4),e=a(new Date(t.getFullYear(),0,4)),n=a(n),0>=o(e,t)?0>=o(n,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var l=O[r+40>>2>>>0];for(var c in r={$b:O[r>>2>>>0],Zb:O[r+4>>2>>>0],Gb:O[r+8>>2>>>0],Kb:O[r+12>>2>>>0],Hb:O[r+16>>2>>>0],Cb:O[r+20>>2>>>0],Ab:O[r+24>>2>>>0],Bb:O[r+28>>2>>>0],bc:O[r+32>>2>>>0],Yb:O[r+36>>2>>>0],ac:l?C(l):""},n=C(n),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})n=n.replace(new RegExp(c,"g"),l[c]);var d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),h="January February March April May June July August September October November December".split(" ");for(c in l={"%a":function(t){return d[t.Ab].substring(0,3)},"%A":function(t){return d[t.Ab]},"%b":function(t){return h[t.Hb].substring(0,3)},"%B":function(t){return h[t.Hb]},"%C":function(t){return s((t.Cb+1900)/100|0,2)},"%d":function(t){return s(t.Kb,2)},"%e":function(t){return i(t.Kb,2," ")},"%g":function(t){return u(t).toString().substring(2)},"%G":function(t){return u(t)},"%H":function(t){return s(t.Gb,2)},"%I":function(t){return 0==(t=t.Gb)?t=12:12<t&&(t-=12),s(t,2)},"%j":function(t){for(var e=0,n=0;n<=t.Hb-1;e+=(pt(t.Cb+1900)?ft:gt)[n++]);return s(t.Kb+e,3)},"%m":function(t){return s(t.Hb+1,2)},"%M":function(t){return s(t.Zb,2)},"%n":function(){return"\n"},"%p":function(t){return 0<=t.Gb&&12>t.Gb?"AM":"PM"},"%S":function(t){return s(t.$b,2)},"%t":function(){return"\t"},"%u":function(t){return t.Ab||7},"%U":function(t){return s(Math.floor((t.Bb+7-t.Ab)/7),2)},"%V":function(t){var e=Math.floor((t.Bb+7-(t.Ab+6)%7)/7);if(2>=(t.Ab+371-t.Bb-2)%7&&e++,e)53==e&&(4==(n=(t.Ab+371-t.Bb)%7)||3==n&&pt(t.Cb)||(e=1));else{e=52;var n=(t.Ab+7-t.Bb-1)%7;(4==n||5==n&&pt(t.Cb%400-1))&&e++}return s(e,2)},"%w":function(t){return t.Ab},"%W":function(t){return s(Math.floor((t.Bb+7-(t.Ab+6)%7)/7),2)},"%y":function(t){return(t.Cb+1900).toString().substring(2)},"%Y":function(t){return t.Cb+1900},"%z":function(t){var e=0<=(t=t.Yb);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.ac},"%%":function(){return"%"}},n=n.replace(/%%/g,"\0\0"),l)n.includes(c)&&(n=n.replace(new RegExp(c,"g"),l[c](r)));return c=function(t){var e=Array(M(t)+1);return $(t,e,0,e.length),e}(n=n.replace(/\0\0/g,"%")),c.length>e?0:(A.set(c,t>>>0),c.length-1)}var _t={a:function(t){return yt(t+24)+24},m:function(t){return(t=new nt(t)).Pb()||(t.Ib(!0),tt--),t.Jb(!1),Q.push(t),t.Nb(),t.Qb()},ia:function(t){throw v("Unexpected exception thrown, this is not properly supported - aborting"),I=!0,t},w:function(){Tt(0);var t=Q.pop();if(t.Xb()&&!t.Lb()){var e=t.Wb();e&&st(e)(t.Db),rt(t.Db)}et=0},d:function(){var t=et;if(!t)return ht=0;var e=new nt(t);e.Fb(t);var n=e.Eb();if(!n)return ht=0,t;for(var r=Array.prototype.slice.call(arguments),i=0;i<r.length;i++){var s=r[i];if(0===s||s===n)break;if(Ot(s,n,e.zb+16))return ht=s,t}return ht=n,t},k:function(){var t=et;if(!t)return ht=0;var e=new nt(t);e.Fb(t);var n=e.Eb();if(!n)return ht=0,t;for(var r=Array.prototype.slice.call(arguments),i=0;i<r.length;i++){var s=r[i];if(0===s||s===n)break;if(Ot(s,n,e.zb+16))return ht=s,t}return ht=n,t},g:function(){var t=et;if(!t)return ht=0;var e=new nt(t);e.Fb(t);var n=e.Eb();if(!n)return ht=0,t;for(var r=Array.prototype.slice.call(arguments),i=0;i<r.length;i++){var s=r[i];if(0===s||s===n)break;if(Ot(s,n,e.zb+16))return ht=s,t}return ht=n,t},s:rt,L:function(){var t=Q.pop();t||H("no exception to throw");var e=t.Db;throw t.Lb()||(Q.push(t),t.Jb(!0),t.Ib(!1),tt++),et=e,e},b:function(t,e,n){throw new nt(t).Rb(e,n),et=t,tt++,t},la:function(){return tt},i:function(t){throw et||(et=t),t},H:function(){return 0},Ba:function(){},pa:function(){},ra:function(){},ka:function(){return 0},za:function(){},ua:function(){},ya:function(){},R:function(){},qa:function(){},na:function(){},Aa:function(){},oa:function(){},Ha:function(){},Ja:function(){H("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ia:function(){H("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},S:function(){return Date.now()},Ca:function(){return!0},Da:function(t,e){t=new Date(1e3*(E[t>>>2]+4294967296*O[t+4>>>2])),O[e>>2>>>0]=t.getUTCSeconds(),O[e+4>>2>>>0]=t.getUTCMinutes(),O[e+8>>2>>>0]=t.getUTCHours(),O[e+12>>2>>>0]=t.getUTCDate(),O[e+16>>2>>>0]=t.getUTCMonth(),O[e+20>>2>>>0]=t.getUTCFullYear()-1900,O[e+24>>2>>>0]=t.getUTCDay(),O[e+28>>2>>>0]=(t.getTime()-Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},Ea:function(t,e){t=new Date(1e3*(E[t>>>2]+4294967296*O[t+4>>>2])),O[e>>2>>>0]=t.getSeconds(),O[e+4>>2>>>0]=t.getMinutes(),O[e+8>>2>>>0]=t.getHours(),O[e+12>>2>>>0]=t.getDate(),O[e+16>>2>>>0]=t.getMonth(),O[e+20>>2>>>0]=t.getFullYear()-1900,O[e+24>>2>>>0]=t.getDay();var n=new Date(t.getFullYear(),0,1);O[e+28>>2>>>0]=(t.getTime()-n.getTime())/864e5|0,O[e+36>>2>>>0]=-60*t.getTimezoneOffset();var r=new Date(t.getFullYear(),6,1).getTimezoneOffset();n=n.getTimezoneOffset(),O[e+32>>2>>>0]=0|(r!=n&&t.getTimezoneOffset()==Math.min(n,r))},Fa:function(t){var e=new Date(O[t+20>>2>>>0]+1900,O[t+16>>2>>>0],O[t+12>>2>>>0],O[t+8>>2>>>0],O[t+4>>2>>>0],O[t>>2>>>0],0),n=O[t+32>>2>>>0],r=e.getTimezoneOffset(),i=new Date(e.getFullYear(),0,1),s=new Date(e.getFullYear(),6,1).getTimezoneOffset(),o=i.getTimezoneOffset(),a=Math.min(o,s);return 0>n?O[t+32>>2>>>0]=Number(s!=o&&a==r):0<n!=(a==r)&&(s=Math.max(o,s),e.setTime(e.getTime()+6e4*((0<n?a:s)-r))),O[t+24>>2>>>0]=e.getDay(),O[t+28>>2>>>0]=(e.getTime()-i.getTime())/864e5|0,O[t>>2>>>0]=e.getSeconds(),O[t+4>>2>>>0]=e.getMinutes(),O[t+8>>2>>>0]=e.getHours(),O[t+12>>2>>>0]=e.getDate(),O[t+16>>2>>>0]=e.getMonth(),e.getTime()/1e3|0},sa:function(){return-52},ta:function(){},Ga:function t(e,n,r){t.Vb||(t.Vb=!0,function(t,e,n){function r(t){return(t=t.toTimeString().match(/\(([A-Za-z ]+)\)$/))?t[1]:"GMT"}var i=(new Date).getFullYear(),s=new Date(i,0,1),o=new Date(i,6,1);i=s.getTimezoneOffset();var a=o.getTimezoneOffset();O[t>>2>>>0]=60*Math.max(i,a),O[e>>2>>>0]=Number(i!=a),t=r(s),e=r(o),t=ot(t),e=ot(e),a<i?(E[n>>2>>>0]=t,E[n+4>>2>>>0]=e):(E[n>>2>>>0]=e,E[n+4>>2>>>0]=t)}(e,n,r))},B:function(){H("")},ma:function(){return 4294901760},I:_?()=>{var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:()=>performance.now(),xa:function(t,e,n){k.copyWithin(t>>>0,e>>>0,e+n>>>0)},G:function(t){var e=k.length;if(4294901760<(t>>>=0))return!1;for(var n=1;4>=n;n*=2){var r=e*(1+.2/n);r=Math.min(r,t+100663296);var i=Math;r=Math.max(t,r),i=i.min.call(i,4294901760,r+(65536-r%65536)%65536);t:{try{T.grow(i-S.byteLength+65535>>>16),F();var s=1;break t}catch(t){}s=void 0}if(s)return!0}return!1},va:function(t,e){var n=0;return ut().forEach((function(r,i){var s=e+n;for(i=E[t+4*i>>2>>>0]=s,s=0;s<r.length;++s)A[(0|i++)>>>0]=r.charCodeAt(s);A[(0|i)>>>0]=0,n+=r.length+1})),0},wa:function(t,e){var n=ut();E[t>>2>>>0]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),E[e>>2>>>0]=r,0},ba:function(t){x||0<B||(xt(),J(j),vt(0),ct[1].length&&dt(1,10),ct[2].length&&dt(2,10)),x||0<B||(e.onExit&&e.onExit(t),I=!0),f(t,new Z(t))},E:function(){return 52},Q:function(){return 52},ca:function(){return 70},P:function(t,e,n,r){for(var i=0,s=0;s<n;s++){var o=E[e>>2>>>0],a=E[e+4>>2>>>0];e+=8;for(var u=0;u<a;u++)dt(t,k[o+u>>>0]);i+=a}return E[r>>2>>>0]=i,0},c:function(){return ht},ja:function t(e,r){t.Mb||(t.Mb=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);return()=>(crypto.getRandomValues(t),t[0])}if(_)try{var e=n(Object(function(){var t=new Error("Cannot find module 'crypto'");throw t.code="MODULE_NOT_FOUND",t}()));return()=>e.randomBytes(1)[0]}catch(t){}return()=>H("randomDevice")}());for(var i=0;i<r;i++)A[(e+i|0)>>>0]=t.Mb();return 0},ea:function(t,e,n){var r=St();try{return st(t)(e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},fa:function(t,e,n){var r=St();try{return st(t)(e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},J:function(t){var e=St();try{return st(t)()}catch(t){if(At(e),t!==t+0)throw t;Tt(1,0)}},e:function(t,e){var n=St();try{return st(t)(e)}catch(t){if(At(n),t!==t+0)throw t;Tt(1,0)}},N:function(t,e,n){var r=St();try{return st(t)(e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},O:function(t,e,n){var r=St();try{return st(t)(e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},j:function(t,e,n){var r=St();try{return st(t)(e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},o:function(t,e,n,r){var i=St();try{return st(t)(e,n,r)}catch(t){if(At(i),t!==t+0)throw t;Tt(1,0)}},p:function(t,e,n,r,i){var s=St();try{return st(t)(e,n,r,i)}catch(t){if(At(s),t!==t+0)throw t;Tt(1,0)}},M:function(t,e,n,r,i,s){var o=St();try{return st(t)(e,n,r,i,s)}catch(t){if(At(o),t!==t+0)throw t;Tt(1,0)}},r:function(t,e,n,r,i,s){var o=St();try{return st(t)(e,n,r,i,s)}catch(t){if(At(o),t!==t+0)throw t;Tt(1,0)}},v:function(t,e,n,r,i,s,o){var a=St();try{return st(t)(e,n,r,i,s,o)}catch(t){if(At(a),t!==t+0)throw t;Tt(1,0)}},K:function(t,e,n,r,i,s,o,a){var u=St();try{return st(t)(e,n,r,i,s,o,a)}catch(t){if(At(u),t!==t+0)throw t;Tt(1,0)}},D:function(t,e,n,r,i,s,o,a,u,l,c,d){var h=St();try{return st(t)(e,n,r,i,s,o,a,u,l,c,d)}catch(t){if(At(h),t!==t+0)throw t;Tt(1,0)}},X:function(t,e,n,r,i,s,o,a){var u=St();try{return Nt(t,e,n,r,i,s,o,a)}catch(t){if(At(u),t!==t+0)throw t;Tt(1,0)}},V:function(t,e,n,r,i,s,o){var a=St();try{return Pt(t,e,n,r,i,s,o)}catch(t){if(At(a),t!==t+0)throw t;Tt(1,0)}},U:function(t,e,n,r,i){var s=St();try{return Rt(t,e,n,r,i)}catch(t){if(At(s),t!==t+0)throw t;Tt(1,0)}},Z:function(t,e,n,r){var i=St();try{return Ft(t,e,n,r)}catch(t){if(At(i),t!==t+0)throw t;Tt(1,0)}},W:function(t){var e=St();try{return It(t)}catch(t){if(At(e),t!==t+0)throw t;Tt(1,0)}},Y:function(t,e){var n=St();try{return Lt(t,e)}catch(t){if(At(n),t!==t+0)throw t;Tt(1,0)}},T:function(t,e,n){var r=St();try{return Dt(t,e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},f:function(t){var e=St();try{st(t)()}catch(t){if(At(e),t!==t+0)throw t;Tt(1,0)}},q:function(t,e){var n=St();try{st(t)(e)}catch(t){if(At(n),t!==t+0)throw t;Tt(1,0)}},h:function(t,e,n){var r=St();try{st(t)(e,n)}catch(t){if(At(r),t!==t+0)throw t;Tt(1,0)}},da:function(t,e,n,r){var i=St();try{st(t)(e,n,r)}catch(t){if(At(i),t!==t+0)throw t;Tt(1,0)}},l:function(t,e,n,r){var i=St();try{st(t)(e,n,r)}catch(t){if(At(i),t!==t+0)throw t;Tt(1,0)}},t:function(t,e,n,r,i){var s=St();try{st(t)(e,n,r,i)}catch(t){if(At(s),t!==t+0)throw t;Tt(1,0)}},u:function(t,e,n,r,i,s){var o=St();try{st(t)(e,n,r,i,s)}catch(t){if(At(o),t!==t+0)throw t;Tt(1,0)}},x:function(t,e,n,r,i,s,o){var a=St();try{st(t)(e,n,r,i,s,o)}catch(t){if(At(a),t!==t+0)throw t;Tt(1,0)}},z:function(t,e,n,r,i,s,o,a){var u=St();try{st(t)(e,n,r,i,s,o,a)}catch(t){if(At(u),t!==t+0)throw t;Tt(1,0)}},ga:function(t,e,n,r,i,s,o,a,u){var l=St();try{st(t)(e,n,r,i,s,o,a,u)}catch(t){if(At(l),t!==t+0)throw t;Tt(1,0)}},A:function(t,e,n,r,i,s,o,a,u,l,c){var d=St();try{st(t)(e,n,r,i,s,o,a,u,l,c)}catch(t){if(At(d),t!==t+0)throw t;Tt(1,0)}},C:function(t,e,n,r,i,s,o,a,u,l,c,d,h,p,f,g){var m=St();try{st(t)(e,n,r,i,s,o,a,u,l,c,d,h,p,f,g)}catch(t){if(At(m),t!==t+0)throw t;Tt(1,0)}},aa:function(t,e,n,r,i,s,o,a){var u=St();try{Ct(t,e,n,r,i,s,o,a)}catch(t){if(At(u),t!==t+0)throw t;Tt(1,0)}},_:function(t,e,n,r,i,s,o,a,u,l,c,d){var h=St();try{Mt(t,e,n,r,i,s,o,a,u,l,c,d)}catch(t){if(At(h),t!==t+0)throw t;Tt(1,0)}},$:function(t,e,n,r,i,s){var o=St();try{$t(t,e,n,r,i,s)}catch(t){if(At(o),t!==t+0)throw t;Tt(1,0)}},n:function(t){return t},F:function(t){ht=t},ha:mt,y:function(t,e,n,r){return mt(t,e,n,r)}};!function(){function t(t){e.asm=t.exports,T=e.asm.Ka,F(),L=e.asm.ib,R.unshift(e.asm.La),G--,e.monitorRunDependencies&&e.monitorRunDependencies(G),0==G&&(null!==q&&(clearInterval(q),q=null),W&&(t=W,W=null,t()))}function n(e){t(e.instance)}function r(t){return function(){if(!y&&(g||m)){if("function"==typeof fetch&&!V.startsWith("file://"))return fetch(V,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+V+"'";return t.arrayBuffer()})).catch((function(){return K()}));if(a)return new Promise((function(t,e){a(V,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return K()}))}().then((function(t){return WebAssembly.instantiate(t,i)})).then((function(t){return t})).then(t,(function(t){v("failed to asynchronously prepare wasm: "+t),H(t)}))}var i={a:_t};if(G++,e.monitorRunDependencies&&e.monitorRunDependencies(G),e.instantiateWasm)try{return e.instantiateWasm(i,t)}catch(t){return v("Module.instantiateWasm callback failed with error: "+t),!1}(y||"function"!=typeof WebAssembly.instantiateStreaming||X()||V.startsWith("file://")||_||"function"!=typeof fetch?r(n):fetch(V,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,i).then(n,(function(t){return v("wasm streaming compile failed: "+t),v("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(s)}(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.La).apply(null,arguments)},e._OrtInit=function(){return(e._OrtInit=e.asm.Ma).apply(null,arguments)},e._OrtCreateSessionOptions=function(){return(e._OrtCreateSessionOptions=e.asm.Na).apply(null,arguments)},e._OrtAppendExecutionProvider=function(){return(e._OrtAppendExecutionProvider=e.asm.Oa).apply(null,arguments)},e._OrtAddSessionConfigEntry=function(){return(e._OrtAddSessionConfigEntry=e.asm.Pa).apply(null,arguments)},e._OrtReleaseSessionOptions=function(){return(e._OrtReleaseSessionOptions=e.asm.Qa).apply(null,arguments)},e._OrtCreateSession=function(){return(e._OrtCreateSession=e.asm.Ra).apply(null,arguments)},e._OrtReleaseSession=function(){return(e._OrtReleaseSession=e.asm.Sa).apply(null,arguments)},e._OrtGetInputCount=function(){return(e._OrtGetInputCount=e.asm.Ta).apply(null,arguments)},e._OrtGetOutputCount=function(){return(e._OrtGetOutputCount=e.asm.Ua).apply(null,arguments)},e._OrtGetInputName=function(){return(e._OrtGetInputName=e.asm.Va).apply(null,arguments)},e._OrtGetOutputName=function(){return(e._OrtGetOutputName=e.asm.Wa).apply(null,arguments)},e._OrtFree=function(){return(e._OrtFree=e.asm.Xa).apply(null,arguments)},e._OrtCreateTensor=function(){return(e._OrtCreateTensor=e.asm.Ya).apply(null,arguments)},e._OrtGetTensorData=function(){return(e._OrtGetTensorData=e.asm.Za).apply(null,arguments)},e._OrtReleaseTensor=function(){return(e._OrtReleaseTensor=e.asm._a).apply(null,arguments)},e._OrtCreateRunOptions=function(){return(e._OrtCreateRunOptions=e.asm.$a).apply(null,arguments)},e._OrtAddRunConfigEntry=function(){return(e._OrtAddRunConfigEntry=e.asm.ab).apply(null,arguments)},e._OrtReleaseRunOptions=function(){return(e._OrtReleaseRunOptions=e.asm.bb).apply(null,arguments)},e._OrtRun=function(){return(e._OrtRun=e.asm.cb).apply(null,arguments)},e._OrtEndProfiling=function(){return(e._OrtEndProfiling=e.asm.db).apply(null,arguments)};var bt,yt=e._malloc=function(){return(yt=e._malloc=e.asm.eb).apply(null,arguments)},wt=e._free=function(){return(wt=e._free=e.asm.fb).apply(null,arguments)},vt=e._fflush=function(){return(vt=e._fflush=e.asm.gb).apply(null,arguments)},xt=e.___funcs_on_exit=function(){return(xt=e.___funcs_on_exit=e.asm.hb).apply(null,arguments)},Tt=e._setThrew=function(){return(Tt=e._setThrew=e.asm.jb).apply(null,arguments)},St=e.stackSave=function(){return(St=e.stackSave=e.asm.kb).apply(null,arguments)},At=e.stackRestore=function(){return(At=e.stackRestore=e.asm.lb).apply(null,arguments)},kt=e.stackAlloc=function(){return(kt=e.stackAlloc=e.asm.mb).apply(null,arguments)},Ot=e.___cxa_can_catch=function(){return(Ot=e.___cxa_can_catch=e.asm.nb).apply(null,arguments)},Et=e.___cxa_is_pointer_type=function(){return(Et=e.___cxa_is_pointer_type=e.asm.ob).apply(null,arguments)},It=e.dynCall_j=function(){return(It=e.dynCall_j=e.asm.pb).apply(null,arguments)},Pt=e.dynCall_iiiiij=function(){return(Pt=e.dynCall_iiiiij=e.asm.qb).apply(null,arguments)},Dt=e.dynCall_jii=function(){return(Dt=e.dynCall_jii=e.asm.rb).apply(null,arguments)},Ct=e.dynCall_viiiiij=function(){return(Ct=e.dynCall_viiiiij=e.asm.sb).apply(null,arguments)},$t=e.dynCall_vjji=function(){return($t=e.dynCall_vjji=e.asm.tb).apply(null,arguments)},Mt=e.dynCall_viiijjjii=function(){return(Mt=e.dynCall_viiijjjii=e.asm.ub).apply(null,arguments)},Ft=e.dynCall_iij=function(){return(Ft=e.dynCall_iij=e.asm.vb).apply(null,arguments)},Lt=e.dynCall_ji=function(){return(Lt=e.dynCall_ji=e.asm.wb).apply(null,arguments)},Nt=e.dynCall_iiiiiij=function(){return(Nt=e.dynCall_iiiiiij=e.asm.xb).apply(null,arguments)},Rt=e.dynCall_iiij=function(){return(Rt=e.dynCall_iiij=e.asm.yb).apply(null,arguments)};function jt(){function t(){if(!bt&&(bt=!0,e.calledRun=!0,!I)){if(J(R),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var t=e.postRun.shift();z.unshift(t)}J(z)}}if(!(0<G)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)U();J(N),0<G||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}}if(e.UTF8ToString=C,e.stringToUTF8=function(t,e,n){return $(t,k,e,n)},e.lengthBytesUTF8=M,e.stackSave=St,e.stackRestore=At,e.stackAlloc=kt,W=function t(){bt||jt(),bt||(W=t)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return jt(),t.ready});t.exports=i},4537:t=>{"use strict";t.exports=function(t,e){for(var n=new Array(arguments.length-1),r=0,i=2,s=!0;i<arguments.length;)n[r++]=arguments[i++];return new Promise((function(i,o){n[r]=function(t){if(s)if(s=!1,t)o(t);else{for(var e=new Array(arguments.length-1),n=0;n<e.length;)e[n++]=arguments[n];i.apply(null,e)}};try{t.apply(e||null,n)}catch(t){s&&(s=!1,o(t))}}))}},7419:(t,e)=>{"use strict";var n=e;n.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&"="===t.charAt(e);)++n;return Math.ceil(3*t.length)/4-n};for(var r=new Array(64),i=new Array(123),s=0;s<64;)i[r[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;n.encode=function(t,e,n){for(var i,s=null,o=[],a=0,u=0;e<n;){var l=t[e++];switch(u){case 0:o[a++]=r[l>>2],i=(3&l)<<4,u=1;break;case 1:o[a++]=r[i|l>>4],i=(15&l)<<2,u=2;break;case 2:o[a++]=r[i|l>>6],o[a++]=r[63&l],u=0}a>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),a=0)}return u&&(o[a++]=r[i],o[a++]=61,1===u&&(o[a++]=61)),s?(a&&s.push(String.fromCharCode.apply(String,o.slice(0,a))),s.join("")):String.fromCharCode.apply(String,o.slice(0,a))};var o="invalid encoding";n.decode=function(t,e,n){for(var r,s=n,a=0,u=0;u<t.length;){var l=t.charCodeAt(u++);if(61===l&&a>1)break;if(void 0===(l=i[l]))throw Error(o);switch(a){case 0:r=l,a=1;break;case 1:e[n++]=r<<2|(48&l)>>4,r=l,a=2;break;case 2:e[n++]=(15&r)<<4|(60&l)>>2,r=l,a=3;break;case 3:e[n++]=(3&r)<<6|l,a=0}}if(1===a)throw Error(o);return n-s},n.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}},9211:t=>{"use strict";function e(){this._listeners={}}t.exports=e,e.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this},e.prototype.off=function(t,e){if(void 0===t)this._listeners={};else if(void 0===e)this._listeners[t]=[];else for(var n=this._listeners[t],r=0;r<n.length;)n[r].fn===e?n.splice(r,1):++r;return this},e.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],r=1;r<arguments.length;)n.push(arguments[r++]);for(r=0;r<e.length;)e[r].fn.apply(e[r++].ctx,n)}return this}},945:t=>{"use strict";function e(t){return"undefined"!=typeof Float32Array?function(){var e=new Float32Array([-0]),n=new Uint8Array(e.buffer),r=128===n[3];function i(t,r,i){e[0]=t,r[i]=n[0],r[i+1]=n[1],r[i+2]=n[2],r[i+3]=n[3]}function s(t,r,i){e[0]=t,r[i]=n[3],r[i+1]=n[2],r[i+2]=n[1],r[i+3]=n[0]}function o(t,r){return n[0]=t[r],n[1]=t[r+1],n[2]=t[r+2],n[3]=t[r+3],e[0]}function a(t,r){return n[3]=t[r],n[2]=t[r+1],n[1]=t[r+2],n[0]=t[r+3],e[0]}t.writeFloatLE=r?i:s,t.writeFloatBE=r?s:i,t.readFloatLE=r?o:a,t.readFloatBE=r?a:o}():function(){function e(t,e,n,r){var i=e<0?1:0;if(i&&(e=-e),0===e)t(1/e>0?0:2147483648,n,r);else if(isNaN(e))t(2143289344,n,r);else if(e>34028234663852886e22)t((i<<31|2139095040)>>>0,n,r);else if(e<11754943508222875e-54)t((i<<31|Math.round(e/1401298464324817e-60))>>>0,n,r);else{var s=Math.floor(Math.log(e)/Math.LN2);t((i<<31|s+127<<23|8388607&Math.round(e*Math.pow(2,-s)*8388608))>>>0,n,r)}}function o(t,e,n){var r=t(e,n),i=2*(r>>31)+1,s=r>>>23&255,o=8388607&r;return 255===s?o?NaN:i*(1/0):0===s?1401298464324817e-60*i*o:i*Math.pow(2,s-150)*(o+8388608)}t.writeFloatLE=e.bind(null,n),t.writeFloatBE=e.bind(null,r),t.readFloatLE=o.bind(null,i),t.readFloatBE=o.bind(null,s)}(),"undefined"!=typeof Float64Array?function(){var e=new Float64Array([-0]),n=new Uint8Array(e.buffer),r=128===n[7];function i(t,r,i){e[0]=t,r[i]=n[0],r[i+1]=n[1],r[i+2]=n[2],r[i+3]=n[3],r[i+4]=n[4],r[i+5]=n[5],r[i+6]=n[6],r[i+7]=n[7]}function s(t,r,i){e[0]=t,r[i]=n[7],r[i+1]=n[6],r[i+2]=n[5],r[i+3]=n[4],r[i+4]=n[3],r[i+5]=n[2],r[i+6]=n[1],r[i+7]=n[0]}function o(t,r){return n[0]=t[r],n[1]=t[r+1],n[2]=t[r+2],n[3]=t[r+3],n[4]=t[r+4],n[5]=t[r+5],n[6]=t[r+6],n[7]=t[r+7],e[0]}function a(t,r){return n[7]=t[r],n[6]=t[r+1],n[5]=t[r+2],n[4]=t[r+3],n[3]=t[r+4],n[2]=t[r+5],n[1]=t[r+6],n[0]=t[r+7],e[0]}t.writeDoubleLE=r?i:s,t.writeDoubleBE=r?s:i,t.readDoubleLE=r?o:a,t.readDoubleBE=r?a:o}():function(){function e(t,e,n,r,i,s){var o=r<0?1:0;if(o&&(r=-r),0===r)t(0,i,s+e),t(1/r>0?0:2147483648,i,s+n);else if(isNaN(r))t(0,i,s+e),t(2146959360,i,s+n);else if(r>17976931348623157e292)t(0,i,s+e),t((o<<31|2146435072)>>>0,i,s+n);else{var a;if(r<22250738585072014e-324)t((a=r/5e-324)>>>0,i,s+e),t((o<<31|a/4294967296)>>>0,i,s+n);else{var u=Math.floor(Math.log(r)/Math.LN2);1024===u&&(u=1023),t(4503599627370496*(a=r*Math.pow(2,-u))>>>0,i,s+e),t((o<<31|u+1023<<20|1048576*a&1048575)>>>0,i,s+n)}}}function o(t,e,n,r,i){var s=t(r,i+e),o=t(r,i+n),a=2*(o>>31)+1,u=o>>>20&2047,l=4294967296*(1048575&o)+s;return 2047===u?l?NaN:a*(1/0):0===u?5e-324*a*l:a*Math.pow(2,u-1075)*(l+4503599627370496)}t.writeDoubleLE=e.bind(null,n,0,4),t.writeDoubleBE=e.bind(null,r,4,0),t.readDoubleLE=o.bind(null,i,0,4),t.readDoubleBE=o.bind(null,s,4,0)}(),t}function n(t,e,n){e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24}function r(t,e,n){e[n]=t>>>24,e[n+1]=t>>>16&255,e[n+2]=t>>>8&255,e[n+3]=255&t}function i(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function s(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}t.exports=e(e)},7199:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}module.exports=inquire},6662:t=>{"use strict";t.exports=function(t,e,n){var r=n||8192,i=r>>>1,s=null,o=r;return function(n){if(n<1||n>i)return t(n);o+n>r&&(s=t(r),o=0);var a=e.call(s,o,o+=n);return 7&o&&(o=1+(7|o)),a}}},4997:(t,e)=>{"use strict";var n=e;n.length=function(t){for(var e=0,n=0,r=0;r<t.length;++r)(n=t.charCodeAt(r))<128?e+=1:n<2048?e+=2:55296==(64512&n)&&56320==(64512&t.charCodeAt(r+1))?(++r,e+=4):e+=3;return e},n.read=function(t,e,n){if(n-e<1)return"";for(var r,i=null,s=[],o=0;e<n;)(r=t[e++])<128?s[o++]=r:r>191&&r<224?s[o++]=(31&r)<<6|63&t[e++]:r>239&&r<365?(r=((7&r)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,s[o++]=55296+(r>>10),s[o++]=56320+(1023&r)):s[o++]=(15&r)<<12|(63&t[e++])<<6|63&t[e++],o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i?(o&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))},n.write=function(t,e,n){for(var r,i,s=n,o=0;o<t.length;++o)(r=t.charCodeAt(o))<128?e[n++]=r:r<2048?(e[n++]=r>>6|192,e[n++]=63&r|128):55296==(64512&r)&&56320==(64512&(i=t.charCodeAt(o+1)))?(r=65536+((1023&r)<<10)+(1023&i),++o,e[n++]=r>>18|240,e[n++]=r>>12&63|128,e[n++]=r>>6&63|128,e[n++]=63&r|128):(e[n++]=r>>12|224,e[n++]=r>>6&63|128,e[n++]=63&r|128);return n-s}},3442:(t,e)=>{"use strict";e.__esModule=!0;var n=function(){function t(e){if(!e)throw new TypeError("Invalid argument; `value` has no value.");this.value=t.EMPTY,e&&t.isGuid(e)&&(this.value=e)}return t.isGuid=function(e){var n=e.toString();return e&&(e instanceof t||t.validator.test(n))},t.create=function(){return new t([t.gen(2),t.gen(1),t.gen(1),t.gen(1),t.gen(3)].join("-"))},t.createEmpty=function(){return new t("emptyguid")},t.parse=function(e){return new t(e)},t.raw=function(){return[t.gen(2),t.gen(1),t.gen(1),t.gen(1),t.gen(3)].join("-")},t.gen=function(t){for(var e="",n=0;n<t;n++)e+=(65536*(1+Math.random())|0).toString(16).substring(1);return e},t.prototype.equals=function(e){return t.isGuid(e)&&this.value===e.toString()},t.prototype.isEmpty=function(){return this.value===t.EMPTY},t.prototype.toString=function(){return this.value},t.prototype.toJSON=function(){return{value:this.value}},t.validator=new RegExp("^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$","i"),t.EMPTY="00000000-0000-0000-0000-000000000000",t}();e.Guid=n},3720:t=>{t.exports=n;var e=null;try{e=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(t){}function n(t,e,n){this.low=0|t,this.high=0|e,this.unsigned=!!n}function r(t){return!0===(t&&t.__isLong__)}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0}),n.isLong=r;var i={},s={};function o(t,e){var n,r,o;return e?(o=0<=(t>>>=0)&&t<256)&&(r=s[t])?r:(n=u(t,(0|t)<0?-1:0,!0),o&&(s[t]=n),n):(o=-128<=(t|=0)&&t<128)&&(r=i[t])?r:(n=u(t,t<0?-1:0,!1),o&&(i[t]=n),n)}function a(t,e){if(isNaN(t))return e?_:m;if(e){if(t<0)return _;if(t>=p)return x}else{if(t<=-f)return T;if(t+1>=f)return v}return t<0?a(-t,e).neg():u(t%h|0,t/h|0,e)}function u(t,e,r){return new n(t,e,r)}n.fromInt=o,n.fromNumber=a,n.fromBits=u;var l=Math.pow;function c(t,e,n){if(0===t.length)throw Error("empty string");if("NaN"===t||"Infinity"===t||"+Infinity"===t||"-Infinity"===t)return m;if("number"==typeof e?(n=e,e=!1):e=!!e,(n=n||10)<2||36<n)throw RangeError("radix");var r;if((r=t.indexOf("-"))>0)throw Error("interior hyphen");if(0===r)return c(t.substring(1),e,n).neg();for(var i=a(l(n,8)),s=m,o=0;o<t.length;o+=8){var u=Math.min(8,t.length-o),d=parseInt(t.substring(o,o+u),n);if(u<8){var h=a(l(n,u));s=s.mul(h).add(a(d))}else s=(s=s.mul(i)).add(a(d))}return s.unsigned=e,s}function d(t,e){return"number"==typeof t?a(t,e):"string"==typeof t?c(t,e):u(t.low,t.high,"boolean"==typeof e?e:t.unsigned)}n.fromString=c,n.fromValue=d;var h=4294967296,p=h*h,f=p/2,g=o(1<<24),m=o(0);n.ZERO=m;var _=o(0,!0);n.UZERO=_;var b=o(1);n.ONE=b;var y=o(1,!0);n.UONE=y;var w=o(-1);n.NEG_ONE=w;var v=u(-1,2147483647,!1);n.MAX_VALUE=v;var x=u(-1,-1,!0);n.MAX_UNSIGNED_VALUE=x;var T=u(0,-2147483648,!1);n.MIN_VALUE=T;var S=n.prototype;S.toInt=function(){return this.unsigned?this.low>>>0:this.low},S.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},S.toString=function(t){if((t=t||10)<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(T)){var e=a(t),n=this.div(e),r=n.mul(e).sub(this);return n.toString(t)+r.toInt().toString(t)}return"-"+this.neg().toString(t)}for(var i=a(l(t,6),this.unsigned),s=this,o="";;){var u=s.div(i),c=(s.sub(u.mul(i)).toInt()>>>0).toString(t);if((s=u).isZero())return c+o;for(;c.length<6;)c="0"+c;o=""+c+o}},S.getHighBits=function(){return this.high},S.getHighBitsUnsigned=function(){return this.high>>>0},S.getLowBits=function(){return this.low},S.getLowBitsUnsigned=function(){return this.low>>>0},S.getNumBitsAbs=function(){if(this.isNegative())return this.eq(T)?64:this.neg().getNumBitsAbs();for(var t=0!=this.high?this.high:this.low,e=31;e>0&&!(t&1<<e);e--);return 0!=this.high?e+33:e+1},S.isZero=function(){return 0===this.high&&0===this.low},S.eqz=S.isZero,S.isNegative=function(){return!this.unsigned&&this.high<0},S.isPositive=function(){return this.unsigned||this.high>=0},S.isOdd=function(){return!(1&~this.low)},S.isEven=function(){return!(1&this.low)},S.equals=function(t){return r(t)||(t=d(t)),(this.unsigned===t.unsigned||this.high>>>31!=1||t.high>>>31!=1)&&this.high===t.high&&this.low===t.low},S.eq=S.equals,S.notEquals=function(t){return!this.eq(t)},S.neq=S.notEquals,S.ne=S.notEquals,S.lessThan=function(t){return this.comp(t)<0},S.lt=S.lessThan,S.lessThanOrEqual=function(t){return this.comp(t)<=0},S.lte=S.lessThanOrEqual,S.le=S.lessThanOrEqual,S.greaterThan=function(t){return this.comp(t)>0},S.gt=S.greaterThan,S.greaterThanOrEqual=function(t){return this.comp(t)>=0},S.gte=S.greaterThanOrEqual,S.ge=S.greaterThanOrEqual,S.compare=function(t){if(r(t)||(t=d(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},S.comp=S.compare,S.negate=function(){return!this.unsigned&&this.eq(T)?T:this.not().add(b)},S.neg=S.negate,S.add=function(t){r(t)||(t=d(t));var e=this.high>>>16,n=65535&this.high,i=this.low>>>16,s=65535&this.low,o=t.high>>>16,a=65535&t.high,l=t.low>>>16,c=0,h=0,p=0,f=0;return p+=(f+=s+(65535&t.low))>>>16,h+=(p+=i+l)>>>16,c+=(h+=n+a)>>>16,c+=e+o,u((p&=65535)<<16|(f&=65535),(c&=65535)<<16|(h&=65535),this.unsigned)},S.subtract=function(t){return r(t)||(t=d(t)),this.add(t.neg())},S.sub=S.subtract,S.multiply=function(t){if(this.isZero())return m;if(r(t)||(t=d(t)),e)return u(e.mul(this.low,this.high,t.low,t.high),e.get_high(),this.unsigned);if(t.isZero())return m;if(this.eq(T))return t.isOdd()?T:m;if(t.eq(T))return this.isOdd()?T:m;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(g)&&t.lt(g))return a(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,i=65535&this.high,s=this.low>>>16,o=65535&this.low,l=t.high>>>16,c=65535&t.high,h=t.low>>>16,p=65535&t.low,f=0,_=0,b=0,y=0;return b+=(y+=o*p)>>>16,_+=(b+=s*p)>>>16,b&=65535,_+=(b+=o*h)>>>16,f+=(_+=i*p)>>>16,_&=65535,f+=(_+=s*h)>>>16,_&=65535,f+=(_+=o*c)>>>16,f+=n*p+i*h+s*c+o*l,u((b&=65535)<<16|(y&=65535),(f&=65535)<<16|(_&=65535),this.unsigned)},S.mul=S.multiply,S.divide=function(t){if(r(t)||(t=d(t)),t.isZero())throw Error("division by zero");var n,i,s;if(e)return this.unsigned||-2147483648!==this.high||-1!==t.low||-1!==t.high?u((this.unsigned?e.div_u:e.div_s)(this.low,this.high,t.low,t.high),e.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?_:m;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return _;if(t.gt(this.shru(1)))return y;s=_}else{if(this.eq(T))return t.eq(b)||t.eq(w)?T:t.eq(T)?b:(n=this.shr(1).div(t).shl(1)).eq(m)?t.isNegative()?b:w:(i=this.sub(t.mul(n)),s=n.add(i.div(t)));if(t.eq(T))return this.unsigned?_:m;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=m}for(i=this;i.gte(t);){n=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var o=Math.ceil(Math.log(n)/Math.LN2),c=o<=48?1:l(2,o-48),h=a(n),p=h.mul(t);p.isNegative()||p.gt(i);)p=(h=a(n-=c,this.unsigned)).mul(t);h.isZero()&&(h=b),s=s.add(h),i=i.sub(p)}return s},S.div=S.divide,S.modulo=function(t){return r(t)||(t=d(t)),e?u((this.unsigned?e.rem_u:e.rem_s)(this.low,this.high,t.low,t.high),e.get_high(),this.unsigned):this.sub(this.div(t).mul(t))},S.mod=S.modulo,S.rem=S.modulo,S.not=function(){return u(~this.low,~this.high,this.unsigned)},S.and=function(t){return r(t)||(t=d(t)),u(this.low&t.low,this.high&t.high,this.unsigned)},S.or=function(t){return r(t)||(t=d(t)),u(this.low|t.low,this.high|t.high,this.unsigned)},S.xor=function(t){return r(t)||(t=d(t)),u(this.low^t.low,this.high^t.high,this.unsigned)},S.shiftLeft=function(t){return r(t)&&(t=t.toInt()),0==(t&=63)?this:t<32?u(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):u(0,this.low<<t-32,this.unsigned)},S.shl=S.shiftLeft,S.shiftRight=function(t){return r(t)&&(t=t.toInt()),0==(t&=63)?this:t<32?u(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):u(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},S.shr=S.shiftRight,S.shiftRightUnsigned=function(t){if(r(t)&&(t=t.toInt()),0==(t&=63))return this;var e=this.high;return t<32?u(this.low>>>t|e<<32-t,e>>>t,this.unsigned):u(32===t?e:e>>>t-32,0,this.unsigned)},S.shru=S.shiftRightUnsigned,S.shr_u=S.shiftRightUnsigned,S.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},S.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},S.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},S.toBytesLE=function(){var t=this.high,e=this.low;return[255&e,e>>>8&255,e>>>16&255,e>>>24,255&t,t>>>8&255,t>>>16&255,t>>>24]},S.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,255&t,e>>>24,e>>>16&255,e>>>8&255,255&e]},n.fromBytes=function(t,e,r){return r?n.fromBytesLE(t,e):n.fromBytesBE(t,e)},n.fromBytesLE=function(t,e){return new n(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)},n.fromBytesBE=function(t,e){return new n(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}},1446:(t,e,n)=>{"use strict";var r,i,s,o=n(2100),a=o.Reader,u=o.Writer,l=o.util,c=o.roots.default||(o.roots.default={});c.onnx=((s={}).Version=(r={},(i=Object.create(r))[r[0]="_START_VERSION"]=0,i[r[1]="IR_VERSION_2017_10_10"]=1,i[r[2]="IR_VERSION_2017_10_30"]=2,i[r[3]="IR_VERSION_2017_11_3"]=3,i[r[4]="IR_VERSION_2019_1_22"]=4,i[r[5]="IR_VERSION"]=5,i),s.AttributeProto=function(){function t(t){if(this.floats=[],this.ints=[],this.strings=[],this.tensors=[],this.graphs=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.name="",t.prototype.refAttrName="",t.prototype.docString="",t.prototype.type=0,t.prototype.f=0,t.prototype.i=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.s=l.newBuffer([]),t.prototype.t=null,t.prototype.g=null,t.prototype.floats=l.emptyArray,t.prototype.ints=l.emptyArray,t.prototype.strings=l.emptyArray,t.prototype.tensors=l.emptyArray,t.prototype.graphs=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.name&&t.hasOwnProperty("name")&&e.uint32(10).string(t.name),null!=t.f&&t.hasOwnProperty("f")&&e.uint32(21).float(t.f),null!=t.i&&t.hasOwnProperty("i")&&e.uint32(24).int64(t.i),null!=t.s&&t.hasOwnProperty("s")&&e.uint32(34).bytes(t.s),null!=t.t&&t.hasOwnProperty("t")&&c.onnx.TensorProto.encode(t.t,e.uint32(42).fork()).ldelim(),null!=t.g&&t.hasOwnProperty("g")&&c.onnx.GraphProto.encode(t.g,e.uint32(50).fork()).ldelim(),null!=t.floats&&t.floats.length){e.uint32(58).fork();for(var n=0;n<t.floats.length;++n)e.float(t.floats[n]);e.ldelim()}if(null!=t.ints&&t.ints.length){for(e.uint32(66).fork(),n=0;n<t.ints.length;++n)e.int64(t.ints[n]);e.ldelim()}if(null!=t.strings&&t.strings.length)for(n=0;n<t.strings.length;++n)e.uint32(74).bytes(t.strings[n]);if(null!=t.tensors&&t.tensors.length)for(n=0;n<t.tensors.length;++n)c.onnx.TensorProto.encode(t.tensors[n],e.uint32(82).fork()).ldelim();if(null!=t.graphs&&t.graphs.length)for(n=0;n<t.graphs.length;++n)c.onnx.GraphProto.encode(t.graphs[n],e.uint32(90).fork()).ldelim();return null!=t.docString&&t.hasOwnProperty("docString")&&e.uint32(106).string(t.docString),null!=t.type&&t.hasOwnProperty("type")&&e.uint32(160).int32(t.type),null!=t.refAttrName&&t.hasOwnProperty("refAttrName")&&e.uint32(170).string(t.refAttrName),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.AttributeProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.name=t.string();break;case 21:r.refAttrName=t.string();break;case 13:r.docString=t.string();break;case 20:r.type=t.int32();break;case 2:r.f=t.float();break;case 3:r.i=t.int64();break;case 4:r.s=t.bytes();break;case 5:r.t=c.onnx.TensorProto.decode(t,t.uint32());break;case 6:r.g=c.onnx.GraphProto.decode(t,t.uint32());break;case 7:if(r.floats&&r.floats.length||(r.floats=[]),2==(7&i))for(var s=t.uint32()+t.pos;t.pos<s;)r.floats.push(t.float());else r.floats.push(t.float());break;case 8:if(r.ints&&r.ints.length||(r.ints=[]),2==(7&i))for(s=t.uint32()+t.pos;t.pos<s;)r.ints.push(t.int64());else r.ints.push(t.int64());break;case 9:r.strings&&r.strings.length||(r.strings=[]),r.strings.push(t.bytes());break;case 10:r.tensors&&r.tensors.length||(r.tensors=[]),r.tensors.push(c.onnx.TensorProto.decode(t,t.uint32()));break;case 11:r.graphs&&r.graphs.length||(r.graphs=[]),r.graphs.push(c.onnx.GraphProto.decode(t,t.uint32()));break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.name&&t.hasOwnProperty("name")&&!l.isString(t.name))return"name: string expected";if(null!=t.refAttrName&&t.hasOwnProperty("refAttrName")&&!l.isString(t.refAttrName))return"refAttrName: string expected";if(null!=t.docString&&t.hasOwnProperty("docString")&&!l.isString(t.docString))return"docString: string expected";if(null!=t.type&&t.hasOwnProperty("type"))switch(t.type){default:return"type: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:}if(null!=t.f&&t.hasOwnProperty("f")&&"number"!=typeof t.f)return"f: number expected";if(null!=t.i&&t.hasOwnProperty("i")&&!(l.isInteger(t.i)||t.i&&l.isInteger(t.i.low)&&l.isInteger(t.i.high)))return"i: integer|Long expected";if(null!=t.s&&t.hasOwnProperty("s")&&!(t.s&&"number"==typeof t.s.length||l.isString(t.s)))return"s: buffer expected";if(null!=t.t&&t.hasOwnProperty("t")&&(n=c.onnx.TensorProto.verify(t.t)))return"t."+n;if(null!=t.g&&t.hasOwnProperty("g")&&(n=c.onnx.GraphProto.verify(t.g)))return"g."+n;if(null!=t.floats&&t.hasOwnProperty("floats")){if(!Array.isArray(t.floats))return"floats: array expected";for(var e=0;e<t.floats.length;++e)if("number"!=typeof t.floats[e])return"floats: number[] expected"}if(null!=t.ints&&t.hasOwnProperty("ints")){if(!Array.isArray(t.ints))return"ints: array expected";for(e=0;e<t.ints.length;++e)if(!(l.isInteger(t.ints[e])||t.ints[e]&&l.isInteger(t.ints[e].low)&&l.isInteger(t.ints[e].high)))return"ints: integer|Long[] expected"}if(null!=t.strings&&t.hasOwnProperty("strings")){if(!Array.isArray(t.strings))return"strings: array expected";for(e=0;e<t.strings.length;++e)if(!(t.strings[e]&&"number"==typeof t.strings[e].length||l.isString(t.strings[e])))return"strings: buffer[] expected"}if(null!=t.tensors&&t.hasOwnProperty("tensors")){if(!Array.isArray(t.tensors))return"tensors: array expected";for(e=0;e<t.tensors.length;++e)if(n=c.onnx.TensorProto.verify(t.tensors[e]))return"tensors."+n}if(null!=t.graphs&&t.hasOwnProperty("graphs")){if(!Array.isArray(t.graphs))return"graphs: array expected";for(e=0;e<t.graphs.length;++e){var n;if(n=c.onnx.GraphProto.verify(t.graphs[e]))return"graphs."+n}}return null},t.fromObject=function(t){if(t instanceof c.onnx.AttributeProto)return t;var e=new c.onnx.AttributeProto;switch(null!=t.name&&(e.name=String(t.name)),null!=t.refAttrName&&(e.refAttrName=String(t.refAttrName)),null!=t.docString&&(e.docString=String(t.docString)),t.type){case"UNDEFINED":case 0:e.type=0;break;case"FLOAT":case 1:e.type=1;break;case"INT":case 2:e.type=2;break;case"STRING":case 3:e.type=3;break;case"TENSOR":case 4:e.type=4;break;case"GRAPH":case 5:e.type=5;break;case"FLOATS":case 6:e.type=6;break;case"INTS":case 7:e.type=7;break;case"STRINGS":case 8:e.type=8;break;case"TENSORS":case 9:e.type=9;break;case"GRAPHS":case 10:e.type=10}if(null!=t.f&&(e.f=Number(t.f)),null!=t.i&&(l.Long?(e.i=l.Long.fromValue(t.i)).unsigned=!1:"string"==typeof t.i?e.i=parseInt(t.i,10):"number"==typeof t.i?e.i=t.i:"object"==typeof t.i&&(e.i=new l.LongBits(t.i.low>>>0,t.i.high>>>0).toNumber())),null!=t.s&&("string"==typeof t.s?l.base64.decode(t.s,e.s=l.newBuffer(l.base64.length(t.s)),0):t.s.length&&(e.s=t.s)),null!=t.t){if("object"!=typeof t.t)throw TypeError(".onnx.AttributeProto.t: object expected");e.t=c.onnx.TensorProto.fromObject(t.t)}if(null!=t.g){if("object"!=typeof t.g)throw TypeError(".onnx.AttributeProto.g: object expected");e.g=c.onnx.GraphProto.fromObject(t.g)}if(t.floats){if(!Array.isArray(t.floats))throw TypeError(".onnx.AttributeProto.floats: array expected");e.floats=[];for(var n=0;n<t.floats.length;++n)e.floats[n]=Number(t.floats[n])}if(t.ints){if(!Array.isArray(t.ints))throw TypeError(".onnx.AttributeProto.ints: array expected");for(e.ints=[],n=0;n<t.ints.length;++n)l.Long?(e.ints[n]=l.Long.fromValue(t.ints[n])).unsigned=!1:"string"==typeof t.ints[n]?e.ints[n]=parseInt(t.ints[n],10):"number"==typeof t.ints[n]?e.ints[n]=t.ints[n]:"object"==typeof t.ints[n]&&(e.ints[n]=new l.LongBits(t.ints[n].low>>>0,t.ints[n].high>>>0).toNumber())}if(t.strings){if(!Array.isArray(t.strings))throw TypeError(".onnx.AttributeProto.strings: array expected");for(e.strings=[],n=0;n<t.strings.length;++n)"string"==typeof t.strings[n]?l.base64.decode(t.strings[n],e.strings[n]=l.newBuffer(l.base64.length(t.strings[n])),0):t.strings[n].length&&(e.strings[n]=t.strings[n])}if(t.tensors){if(!Array.isArray(t.tensors))throw TypeError(".onnx.AttributeProto.tensors: array expected");for(e.tensors=[],n=0;n<t.tensors.length;++n){if("object"!=typeof t.tensors[n])throw TypeError(".onnx.AttributeProto.tensors: object expected");e.tensors[n]=c.onnx.TensorProto.fromObject(t.tensors[n])}}if(t.graphs){if(!Array.isArray(t.graphs))throw TypeError(".onnx.AttributeProto.graphs: array expected");for(e.graphs=[],n=0;n<t.graphs.length;++n){if("object"!=typeof t.graphs[n])throw TypeError(".onnx.AttributeProto.graphs: object expected");e.graphs[n]=c.onnx.GraphProto.fromObject(t.graphs[n])}}return e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.floats=[],n.ints=[],n.strings=[],n.tensors=[],n.graphs=[]),e.defaults){if(n.name="",n.f=0,l.Long){var r=new l.Long(0,0,!1);n.i=e.longs===String?r.toString():e.longs===Number?r.toNumber():r}else n.i=e.longs===String?"0":0;e.bytes===String?n.s="":(n.s=[],e.bytes!==Array&&(n.s=l.newBuffer(n.s))),n.t=null,n.g=null,n.docString="",n.type=e.enums===String?"UNDEFINED":0,n.refAttrName=""}if(null!=t.name&&t.hasOwnProperty("name")&&(n.name=t.name),null!=t.f&&t.hasOwnProperty("f")&&(n.f=e.json&&!isFinite(t.f)?String(t.f):t.f),null!=t.i&&t.hasOwnProperty("i")&&("number"==typeof t.i?n.i=e.longs===String?String(t.i):t.i:n.i=e.longs===String?l.Long.prototype.toString.call(t.i):e.longs===Number?new l.LongBits(t.i.low>>>0,t.i.high>>>0).toNumber():t.i),null!=t.s&&t.hasOwnProperty("s")&&(n.s=e.bytes===String?l.base64.encode(t.s,0,t.s.length):e.bytes===Array?Array.prototype.slice.call(t.s):t.s),null!=t.t&&t.hasOwnProperty("t")&&(n.t=c.onnx.TensorProto.toObject(t.t,e)),null!=t.g&&t.hasOwnProperty("g")&&(n.g=c.onnx.GraphProto.toObject(t.g,e)),t.floats&&t.floats.length){n.floats=[];for(var i=0;i<t.floats.length;++i)n.floats[i]=e.json&&!isFinite(t.floats[i])?String(t.floats[i]):t.floats[i]}if(t.ints&&t.ints.length)for(n.ints=[],i=0;i<t.ints.length;++i)"number"==typeof t.ints[i]?n.ints[i]=e.longs===String?String(t.ints[i]):t.ints[i]:n.ints[i]=e.longs===String?l.Long.prototype.toString.call(t.ints[i]):e.longs===Number?new l.LongBits(t.ints[i].low>>>0,t.ints[i].high>>>0).toNumber():t.ints[i];if(t.strings&&t.strings.length)for(n.strings=[],i=0;i<t.strings.length;++i)n.strings[i]=e.bytes===String?l.base64.encode(t.strings[i],0,t.strings[i].length):e.bytes===Array?Array.prototype.slice.call(t.strings[i]):t.strings[i];if(t.tensors&&t.tensors.length)for(n.tensors=[],i=0;i<t.tensors.length;++i)n.tensors[i]=c.onnx.TensorProto.toObject(t.tensors[i],e);if(t.graphs&&t.graphs.length)for(n.graphs=[],i=0;i<t.graphs.length;++i)n.graphs[i]=c.onnx.GraphProto.toObject(t.graphs[i],e);return null!=t.docString&&t.hasOwnProperty("docString")&&(n.docString=t.docString),null!=t.type&&t.hasOwnProperty("type")&&(n.type=e.enums===String?c.onnx.AttributeProto.AttributeType[t.type]:t.type),null!=t.refAttrName&&t.hasOwnProperty("refAttrName")&&(n.refAttrName=t.refAttrName),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t.AttributeType=function(){var t={},e=Object.create(t);return e[t[0]="UNDEFINED"]=0,e[t[1]="FLOAT"]=1,e[t[2]="INT"]=2,e[t[3]="STRING"]=3,e[t[4]="TENSOR"]=4,e[t[5]="GRAPH"]=5,e[t[6]="FLOATS"]=6,e[t[7]="INTS"]=7,e[t[8]="STRINGS"]=8,e[t[9]="TENSORS"]=9,e[t[10]="GRAPHS"]=10,e}(),t}(),s.ValueInfoProto=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.name="",t.prototype.type=null,t.prototype.docString="",t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.name&&t.hasOwnProperty("name")&&e.uint32(10).string(t.name),null!=t.type&&t.hasOwnProperty("type")&&c.onnx.TypeProto.encode(t.type,e.uint32(18).fork()).ldelim(),null!=t.docString&&t.hasOwnProperty("docString")&&e.uint32(26).string(t.docString),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.ValueInfoProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.name=t.string();break;case 2:r.type=c.onnx.TypeProto.decode(t,t.uint32());break;case 3:r.docString=t.string();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.name&&t.hasOwnProperty("name")&&!l.isString(t.name))return"name: string expected";if(null!=t.type&&t.hasOwnProperty("type")){var e=c.onnx.TypeProto.verify(t.type);if(e)return"type."+e}return null!=t.docString&&t.hasOwnProperty("docString")&&!l.isString(t.docString)?"docString: string expected":null},t.fromObject=function(t){if(t instanceof c.onnx.ValueInfoProto)return t;var e=new c.onnx.ValueInfoProto;if(null!=t.name&&(e.name=String(t.name)),null!=t.type){if("object"!=typeof t.type)throw TypeError(".onnx.ValueInfoProto.type: object expected");e.type=c.onnx.TypeProto.fromObject(t.type)}return null!=t.docString&&(e.docString=String(t.docString)),e},t.toObject=function(t,e){e||(e={});var n={};return e.defaults&&(n.name="",n.type=null,n.docString=""),null!=t.name&&t.hasOwnProperty("name")&&(n.name=t.name),null!=t.type&&t.hasOwnProperty("type")&&(n.type=c.onnx.TypeProto.toObject(t.type,e)),null!=t.docString&&t.hasOwnProperty("docString")&&(n.docString=t.docString),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s.NodeProto=function(){function t(t){if(this.input=[],this.output=[],this.attribute=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.input=l.emptyArray,t.prototype.output=l.emptyArray,t.prototype.name="",t.prototype.opType="",t.prototype.domain="",t.prototype.attribute=l.emptyArray,t.prototype.docString="",t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.input&&t.input.length)for(var n=0;n<t.input.length;++n)e.uint32(10).string(t.input[n]);if(null!=t.output&&t.output.length)for(n=0;n<t.output.length;++n)e.uint32(18).string(t.output[n]);if(null!=t.name&&t.hasOwnProperty("name")&&e.uint32(26).string(t.name),null!=t.opType&&t.hasOwnProperty("opType")&&e.uint32(34).string(t.opType),null!=t.attribute&&t.attribute.length)for(n=0;n<t.attribute.length;++n)c.onnx.AttributeProto.encode(t.attribute[n],e.uint32(42).fork()).ldelim();return null!=t.docString&&t.hasOwnProperty("docString")&&e.uint32(50).string(t.docString),null!=t.domain&&t.hasOwnProperty("domain")&&e.uint32(58).string(t.domain),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.NodeProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.input&&r.input.length||(r.input=[]),r.input.push(t.string());break;case 2:r.output&&r.output.length||(r.output=[]),r.output.push(t.string());break;case 3:r.name=t.string();break;case 4:r.opType=t.string();break;case 7:r.domain=t.string();break;case 5:r.attribute&&r.attribute.length||(r.attribute=[]),r.attribute.push(c.onnx.AttributeProto.decode(t,t.uint32()));break;case 6:r.docString=t.string();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.input&&t.hasOwnProperty("input")){if(!Array.isArray(t.input))return"input: array expected";for(var e=0;e<t.input.length;++e)if(!l.isString(t.input[e]))return"input: string[] expected"}if(null!=t.output&&t.hasOwnProperty("output")){if(!Array.isArray(t.output))return"output: array expected";for(e=0;e<t.output.length;++e)if(!l.isString(t.output[e]))return"output: string[] expected"}if(null!=t.name&&t.hasOwnProperty("name")&&!l.isString(t.name))return"name: string expected";if(null!=t.opType&&t.hasOwnProperty("opType")&&!l.isString(t.opType))return"opType: string expected";if(null!=t.domain&&t.hasOwnProperty("domain")&&!l.isString(t.domain))return"domain: string expected";if(null!=t.attribute&&t.hasOwnProperty("attribute")){if(!Array.isArray(t.attribute))return"attribute: array expected";for(e=0;e<t.attribute.length;++e){var n=c.onnx.AttributeProto.verify(t.attribute[e]);if(n)return"attribute."+n}}return null!=t.docString&&t.hasOwnProperty("docString")&&!l.isString(t.docString)?"docString: string expected":null},t.fromObject=function(t){if(t instanceof c.onnx.NodeProto)return t;var e=new c.onnx.NodeProto;if(t.input){if(!Array.isArray(t.input))throw TypeError(".onnx.NodeProto.input: array expected");e.input=[];for(var n=0;n<t.input.length;++n)e.input[n]=String(t.input[n])}if(t.output){if(!Array.isArray(t.output))throw TypeError(".onnx.NodeProto.output: array expected");for(e.output=[],n=0;n<t.output.length;++n)e.output[n]=String(t.output[n])}if(null!=t.name&&(e.name=String(t.name)),null!=t.opType&&(e.opType=String(t.opType)),null!=t.domain&&(e.domain=String(t.domain)),t.attribute){if(!Array.isArray(t.attribute))throw TypeError(".onnx.NodeProto.attribute: array expected");for(e.attribute=[],n=0;n<t.attribute.length;++n){if("object"!=typeof t.attribute[n])throw TypeError(".onnx.NodeProto.attribute: object expected");e.attribute[n]=c.onnx.AttributeProto.fromObject(t.attribute[n])}}return null!=t.docString&&(e.docString=String(t.docString)),e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.input=[],n.output=[],n.attribute=[]),e.defaults&&(n.name="",n.opType="",n.docString="",n.domain=""),t.input&&t.input.length){n.input=[];for(var r=0;r<t.input.length;++r)n.input[r]=t.input[r]}if(t.output&&t.output.length)for(n.output=[],r=0;r<t.output.length;++r)n.output[r]=t.output[r];if(null!=t.name&&t.hasOwnProperty("name")&&(n.name=t.name),null!=t.opType&&t.hasOwnProperty("opType")&&(n.opType=t.opType),t.attribute&&t.attribute.length)for(n.attribute=[],r=0;r<t.attribute.length;++r)n.attribute[r]=c.onnx.AttributeProto.toObject(t.attribute[r],e);return null!=t.docString&&t.hasOwnProperty("docString")&&(n.docString=t.docString),null!=t.domain&&t.hasOwnProperty("domain")&&(n.domain=t.domain),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s.ModelProto=function(){function t(t){if(this.opsetImport=[],this.metadataProps=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.irVersion=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.opsetImport=l.emptyArray,t.prototype.producerName="",t.prototype.producerVersion="",t.prototype.domain="",t.prototype.modelVersion=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.docString="",t.prototype.graph=null,t.prototype.metadataProps=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.irVersion&&t.hasOwnProperty("irVersion")&&e.uint32(8).int64(t.irVersion),null!=t.producerName&&t.hasOwnProperty("producerName")&&e.uint32(18).string(t.producerName),null!=t.producerVersion&&t.hasOwnProperty("producerVersion")&&e.uint32(26).string(t.producerVersion),null!=t.domain&&t.hasOwnProperty("domain")&&e.uint32(34).string(t.domain),null!=t.modelVersion&&t.hasOwnProperty("modelVersion")&&e.uint32(40).int64(t.modelVersion),null!=t.docString&&t.hasOwnProperty("docString")&&e.uint32(50).string(t.docString),null!=t.graph&&t.hasOwnProperty("graph")&&c.onnx.GraphProto.encode(t.graph,e.uint32(58).fork()).ldelim(),null!=t.opsetImport&&t.opsetImport.length)for(var n=0;n<t.opsetImport.length;++n)c.onnx.OperatorSetIdProto.encode(t.opsetImport[n],e.uint32(66).fork()).ldelim();if(null!=t.metadataProps&&t.metadataProps.length)for(n=0;n<t.metadataProps.length;++n)c.onnx.StringStringEntryProto.encode(t.metadataProps[n],e.uint32(114).fork()).ldelim();return e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.ModelProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.irVersion=t.int64();break;case 8:r.opsetImport&&r.opsetImport.length||(r.opsetImport=[]),r.opsetImport.push(c.onnx.OperatorSetIdProto.decode(t,t.uint32()));break;case 2:r.producerName=t.string();break;case 3:r.producerVersion=t.string();break;case 4:r.domain=t.string();break;case 5:r.modelVersion=t.int64();break;case 6:r.docString=t.string();break;case 7:r.graph=c.onnx.GraphProto.decode(t,t.uint32());break;case 14:r.metadataProps&&r.metadataProps.length||(r.metadataProps=[]),r.metadataProps.push(c.onnx.StringStringEntryProto.decode(t,t.uint32()));break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.irVersion&&t.hasOwnProperty("irVersion")&&!(l.isInteger(t.irVersion)||t.irVersion&&l.isInteger(t.irVersion.low)&&l.isInteger(t.irVersion.high)))return"irVersion: integer|Long expected";if(null!=t.opsetImport&&t.hasOwnProperty("opsetImport")){if(!Array.isArray(t.opsetImport))return"opsetImport: array expected";for(var e=0;e<t.opsetImport.length;++e)if(n=c.onnx.OperatorSetIdProto.verify(t.opsetImport[e]))return"opsetImport."+n}if(null!=t.producerName&&t.hasOwnProperty("producerName")&&!l.isString(t.producerName))return"producerName: string expected";if(null!=t.producerVersion&&t.hasOwnProperty("producerVersion")&&!l.isString(t.producerVersion))return"producerVersion: string expected";if(null!=t.domain&&t.hasOwnProperty("domain")&&!l.isString(t.domain))return"domain: string expected";if(null!=t.modelVersion&&t.hasOwnProperty("modelVersion")&&!(l.isInteger(t.modelVersion)||t.modelVersion&&l.isInteger(t.modelVersion.low)&&l.isInteger(t.modelVersion.high)))return"modelVersion: integer|Long expected";if(null!=t.docString&&t.hasOwnProperty("docString")&&!l.isString(t.docString))return"docString: string expected";if(null!=t.graph&&t.hasOwnProperty("graph")&&(n=c.onnx.GraphProto.verify(t.graph)))return"graph."+n;if(null!=t.metadataProps&&t.hasOwnProperty("metadataProps")){if(!Array.isArray(t.metadataProps))return"metadataProps: array expected";for(e=0;e<t.metadataProps.length;++e){var n;if(n=c.onnx.StringStringEntryProto.verify(t.metadataProps[e]))return"metadataProps."+n}}return null},t.fromObject=function(t){if(t instanceof c.onnx.ModelProto)return t;var e=new c.onnx.ModelProto;if(null!=t.irVersion&&(l.Long?(e.irVersion=l.Long.fromValue(t.irVersion)).unsigned=!1:"string"==typeof t.irVersion?e.irVersion=parseInt(t.irVersion,10):"number"==typeof t.irVersion?e.irVersion=t.irVersion:"object"==typeof t.irVersion&&(e.irVersion=new l.LongBits(t.irVersion.low>>>0,t.irVersion.high>>>0).toNumber())),t.opsetImport){if(!Array.isArray(t.opsetImport))throw TypeError(".onnx.ModelProto.opsetImport: array expected");e.opsetImport=[];for(var n=0;n<t.opsetImport.length;++n){if("object"!=typeof t.opsetImport[n])throw TypeError(".onnx.ModelProto.opsetImport: object expected");e.opsetImport[n]=c.onnx.OperatorSetIdProto.fromObject(t.opsetImport[n])}}if(null!=t.producerName&&(e.producerName=String(t.producerName)),null!=t.producerVersion&&(e.producerVersion=String(t.producerVersion)),null!=t.domain&&(e.domain=String(t.domain)),null!=t.modelVersion&&(l.Long?(e.modelVersion=l.Long.fromValue(t.modelVersion)).unsigned=!1:"string"==typeof t.modelVersion?e.modelVersion=parseInt(t.modelVersion,10):"number"==typeof t.modelVersion?e.modelVersion=t.modelVersion:"object"==typeof t.modelVersion&&(e.modelVersion=new l.LongBits(t.modelVersion.low>>>0,t.modelVersion.high>>>0).toNumber())),null!=t.docString&&(e.docString=String(t.docString)),null!=t.graph){if("object"!=typeof t.graph)throw TypeError(".onnx.ModelProto.graph: object expected");e.graph=c.onnx.GraphProto.fromObject(t.graph)}if(t.metadataProps){if(!Array.isArray(t.metadataProps))throw TypeError(".onnx.ModelProto.metadataProps: array expected");for(e.metadataProps=[],n=0;n<t.metadataProps.length;++n){if("object"!=typeof t.metadataProps[n])throw TypeError(".onnx.ModelProto.metadataProps: object expected");e.metadataProps[n]=c.onnx.StringStringEntryProto.fromObject(t.metadataProps[n])}}return e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.opsetImport=[],n.metadataProps=[]),e.defaults){if(l.Long){var r=new l.Long(0,0,!1);n.irVersion=e.longs===String?r.toString():e.longs===Number?r.toNumber():r}else n.irVersion=e.longs===String?"0":0;n.producerName="",n.producerVersion="",n.domain="",l.Long?(r=new l.Long(0,0,!1),n.modelVersion=e.longs===String?r.toString():e.longs===Number?r.toNumber():r):n.modelVersion=e.longs===String?"0":0,n.docString="",n.graph=null}if(null!=t.irVersion&&t.hasOwnProperty("irVersion")&&("number"==typeof t.irVersion?n.irVersion=e.longs===String?String(t.irVersion):t.irVersion:n.irVersion=e.longs===String?l.Long.prototype.toString.call(t.irVersion):e.longs===Number?new l.LongBits(t.irVersion.low>>>0,t.irVersion.high>>>0).toNumber():t.irVersion),null!=t.producerName&&t.hasOwnProperty("producerName")&&(n.producerName=t.producerName),null!=t.producerVersion&&t.hasOwnProperty("producerVersion")&&(n.producerVersion=t.producerVersion),null!=t.domain&&t.hasOwnProperty("domain")&&(n.domain=t.domain),null!=t.modelVersion&&t.hasOwnProperty("modelVersion")&&("number"==typeof t.modelVersion?n.modelVersion=e.longs===String?String(t.modelVersion):t.modelVersion:n.modelVersion=e.longs===String?l.Long.prototype.toString.call(t.modelVersion):e.longs===Number?new l.LongBits(t.modelVersion.low>>>0,t.modelVersion.high>>>0).toNumber():t.modelVersion),null!=t.docString&&t.hasOwnProperty("docString")&&(n.docString=t.docString),null!=t.graph&&t.hasOwnProperty("graph")&&(n.graph=c.onnx.GraphProto.toObject(t.graph,e)),t.opsetImport&&t.opsetImport.length){n.opsetImport=[];for(var i=0;i<t.opsetImport.length;++i)n.opsetImport[i]=c.onnx.OperatorSetIdProto.toObject(t.opsetImport[i],e)}if(t.metadataProps&&t.metadataProps.length)for(n.metadataProps=[],i=0;i<t.metadataProps.length;++i)n.metadataProps[i]=c.onnx.StringStringEntryProto.toObject(t.metadataProps[i],e);return n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s.StringStringEntryProto=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.key="",t.prototype.value="",t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.key&&t.hasOwnProperty("key")&&e.uint32(10).string(t.key),null!=t.value&&t.hasOwnProperty("value")&&e.uint32(18).string(t.value),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.StringStringEntryProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.key=t.string();break;case 2:r.value=t.string();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){return"object"!=typeof t||null===t?"object expected":null!=t.key&&t.hasOwnProperty("key")&&!l.isString(t.key)?"key: string expected":null!=t.value&&t.hasOwnProperty("value")&&!l.isString(t.value)?"value: string expected":null},t.fromObject=function(t){if(t instanceof c.onnx.StringStringEntryProto)return t;var e=new c.onnx.StringStringEntryProto;return null!=t.key&&(e.key=String(t.key)),null!=t.value&&(e.value=String(t.value)),e},t.toObject=function(t,e){e||(e={});var n={};return e.defaults&&(n.key="",n.value=""),null!=t.key&&t.hasOwnProperty("key")&&(n.key=t.key),null!=t.value&&t.hasOwnProperty("value")&&(n.value=t.value),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s.TensorAnnotation=function(){function t(t){if(this.quantParameterTensorNames=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.tensorName="",t.prototype.quantParameterTensorNames=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.tensorName&&t.hasOwnProperty("tensorName")&&e.uint32(10).string(t.tensorName),null!=t.quantParameterTensorNames&&t.quantParameterTensorNames.length)for(var n=0;n<t.quantParameterTensorNames.length;++n)c.onnx.StringStringEntryProto.encode(t.quantParameterTensorNames[n],e.uint32(18).fork()).ldelim();return e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TensorAnnotation;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.tensorName=t.string();break;case 2:r.quantParameterTensorNames&&r.quantParameterTensorNames.length||(r.quantParameterTensorNames=[]),r.quantParameterTensorNames.push(c.onnx.StringStringEntryProto.decode(t,t.uint32()));break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.tensorName&&t.hasOwnProperty("tensorName")&&!l.isString(t.tensorName))return"tensorName: string expected";if(null!=t.quantParameterTensorNames&&t.hasOwnProperty("quantParameterTensorNames")){if(!Array.isArray(t.quantParameterTensorNames))return"quantParameterTensorNames: array expected";for(var e=0;e<t.quantParameterTensorNames.length;++e){var n=c.onnx.StringStringEntryProto.verify(t.quantParameterTensorNames[e]);if(n)return"quantParameterTensorNames."+n}}return null},t.fromObject=function(t){if(t instanceof c.onnx.TensorAnnotation)return t;var e=new c.onnx.TensorAnnotation;if(null!=t.tensorName&&(e.tensorName=String(t.tensorName)),t.quantParameterTensorNames){if(!Array.isArray(t.quantParameterTensorNames))throw TypeError(".onnx.TensorAnnotation.quantParameterTensorNames: array expected");e.quantParameterTensorNames=[];for(var n=0;n<t.quantParameterTensorNames.length;++n){if("object"!=typeof t.quantParameterTensorNames[n])throw TypeError(".onnx.TensorAnnotation.quantParameterTensorNames: object expected");e.quantParameterTensorNames[n]=c.onnx.StringStringEntryProto.fromObject(t.quantParameterTensorNames[n])}}return e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.quantParameterTensorNames=[]),e.defaults&&(n.tensorName=""),null!=t.tensorName&&t.hasOwnProperty("tensorName")&&(n.tensorName=t.tensorName),t.quantParameterTensorNames&&t.quantParameterTensorNames.length){n.quantParameterTensorNames=[];for(var r=0;r<t.quantParameterTensorNames.length;++r)n.quantParameterTensorNames[r]=c.onnx.StringStringEntryProto.toObject(t.quantParameterTensorNames[r],e)}return n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s.GraphProto=function(){function t(t){if(this.node=[],this.initializer=[],this.input=[],this.output=[],this.valueInfo=[],this.quantizationAnnotation=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.node=l.emptyArray,t.prototype.name="",t.prototype.initializer=l.emptyArray,t.prototype.docString="",t.prototype.input=l.emptyArray,t.prototype.output=l.emptyArray,t.prototype.valueInfo=l.emptyArray,t.prototype.quantizationAnnotation=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.node&&t.node.length)for(var n=0;n<t.node.length;++n)c.onnx.NodeProto.encode(t.node[n],e.uint32(10).fork()).ldelim();if(null!=t.name&&t.hasOwnProperty("name")&&e.uint32(18).string(t.name),null!=t.initializer&&t.initializer.length)for(n=0;n<t.initializer.length;++n)c.onnx.TensorProto.encode(t.initializer[n],e.uint32(42).fork()).ldelim();if(null!=t.docString&&t.hasOwnProperty("docString")&&e.uint32(82).string(t.docString),null!=t.input&&t.input.length)for(n=0;n<t.input.length;++n)c.onnx.ValueInfoProto.encode(t.input[n],e.uint32(90).fork()).ldelim();if(null!=t.output&&t.output.length)for(n=0;n<t.output.length;++n)c.onnx.ValueInfoProto.encode(t.output[n],e.uint32(98).fork()).ldelim();if(null!=t.valueInfo&&t.valueInfo.length)for(n=0;n<t.valueInfo.length;++n)c.onnx.ValueInfoProto.encode(t.valueInfo[n],e.uint32(106).fork()).ldelim();if(null!=t.quantizationAnnotation&&t.quantizationAnnotation.length)for(n=0;n<t.quantizationAnnotation.length;++n)c.onnx.TensorAnnotation.encode(t.quantizationAnnotation[n],e.uint32(114).fork()).ldelim();return e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.GraphProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.node&&r.node.length||(r.node=[]),r.node.push(c.onnx.NodeProto.decode(t,t.uint32()));break;case 2:r.name=t.string();break;case 5:r.initializer&&r.initializer.length||(r.initializer=[]),r.initializer.push(c.onnx.TensorProto.decode(t,t.uint32()));break;case 10:r.docString=t.string();break;case 11:r.input&&r.input.length||(r.input=[]),r.input.push(c.onnx.ValueInfoProto.decode(t,t.uint32()));break;case 12:r.output&&r.output.length||(r.output=[]),r.output.push(c.onnx.ValueInfoProto.decode(t,t.uint32()));break;case 13:r.valueInfo&&r.valueInfo.length||(r.valueInfo=[]),r.valueInfo.push(c.onnx.ValueInfoProto.decode(t,t.uint32()));break;case 14:r.quantizationAnnotation&&r.quantizationAnnotation.length||(r.quantizationAnnotation=[]),r.quantizationAnnotation.push(c.onnx.TensorAnnotation.decode(t,t.uint32()));break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.node&&t.hasOwnProperty("node")){if(!Array.isArray(t.node))return"node: array expected";for(var e=0;e<t.node.length;++e)if(n=c.onnx.NodeProto.verify(t.node[e]))return"node."+n}if(null!=t.name&&t.hasOwnProperty("name")&&!l.isString(t.name))return"name: string expected";if(null!=t.initializer&&t.hasOwnProperty("initializer")){if(!Array.isArray(t.initializer))return"initializer: array expected";for(e=0;e<t.initializer.length;++e)if(n=c.onnx.TensorProto.verify(t.initializer[e]))return"initializer."+n}if(null!=t.docString&&t.hasOwnProperty("docString")&&!l.isString(t.docString))return"docString: string expected";if(null!=t.input&&t.hasOwnProperty("input")){if(!Array.isArray(t.input))return"input: array expected";for(e=0;e<t.input.length;++e)if(n=c.onnx.ValueInfoProto.verify(t.input[e]))return"input."+n}if(null!=t.output&&t.hasOwnProperty("output")){if(!Array.isArray(t.output))return"output: array expected";for(e=0;e<t.output.length;++e)if(n=c.onnx.ValueInfoProto.verify(t.output[e]))return"output."+n}if(null!=t.valueInfo&&t.hasOwnProperty("valueInfo")){if(!Array.isArray(t.valueInfo))return"valueInfo: array expected";for(e=0;e<t.valueInfo.length;++e)if(n=c.onnx.ValueInfoProto.verify(t.valueInfo[e]))return"valueInfo."+n}if(null!=t.quantizationAnnotation&&t.hasOwnProperty("quantizationAnnotation")){if(!Array.isArray(t.quantizationAnnotation))return"quantizationAnnotation: array expected";for(e=0;e<t.quantizationAnnotation.length;++e){var n;if(n=c.onnx.TensorAnnotation.verify(t.quantizationAnnotation[e]))return"quantizationAnnotation."+n}}return null},t.fromObject=function(t){if(t instanceof c.onnx.GraphProto)return t;var e=new c.onnx.GraphProto;if(t.node){if(!Array.isArray(t.node))throw TypeError(".onnx.GraphProto.node: array expected");e.node=[];for(var n=0;n<t.node.length;++n){if("object"!=typeof t.node[n])throw TypeError(".onnx.GraphProto.node: object expected");e.node[n]=c.onnx.NodeProto.fromObject(t.node[n])}}if(null!=t.name&&(e.name=String(t.name)),t.initializer){if(!Array.isArray(t.initializer))throw TypeError(".onnx.GraphProto.initializer: array expected");for(e.initializer=[],n=0;n<t.initializer.length;++n){if("object"!=typeof t.initializer[n])throw TypeError(".onnx.GraphProto.initializer: object expected");e.initializer[n]=c.onnx.TensorProto.fromObject(t.initializer[n])}}if(null!=t.docString&&(e.docString=String(t.docString)),t.input){if(!Array.isArray(t.input))throw TypeError(".onnx.GraphProto.input: array expected");for(e.input=[],n=0;n<t.input.length;++n){if("object"!=typeof t.input[n])throw TypeError(".onnx.GraphProto.input: object expected");e.input[n]=c.onnx.ValueInfoProto.fromObject(t.input[n])}}if(t.output){if(!Array.isArray(t.output))throw TypeError(".onnx.GraphProto.output: array expected");for(e.output=[],n=0;n<t.output.length;++n){if("object"!=typeof t.output[n])throw TypeError(".onnx.GraphProto.output: object expected");e.output[n]=c.onnx.ValueInfoProto.fromObject(t.output[n])}}if(t.valueInfo){if(!Array.isArray(t.valueInfo))throw TypeError(".onnx.GraphProto.valueInfo: array expected");for(e.valueInfo=[],n=0;n<t.valueInfo.length;++n){if("object"!=typeof t.valueInfo[n])throw TypeError(".onnx.GraphProto.valueInfo: object expected");e.valueInfo[n]=c.onnx.ValueInfoProto.fromObject(t.valueInfo[n])}}if(t.quantizationAnnotation){if(!Array.isArray(t.quantizationAnnotation))throw TypeError(".onnx.GraphProto.quantizationAnnotation: array expected");for(e.quantizationAnnotation=[],n=0;n<t.quantizationAnnotation.length;++n){if("object"!=typeof t.quantizationAnnotation[n])throw TypeError(".onnx.GraphProto.quantizationAnnotation: object expected");e.quantizationAnnotation[n]=c.onnx.TensorAnnotation.fromObject(t.quantizationAnnotation[n])}}return e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.node=[],n.initializer=[],n.input=[],n.output=[],n.valueInfo=[],n.quantizationAnnotation=[]),e.defaults&&(n.name="",n.docString=""),t.node&&t.node.length){n.node=[];for(var r=0;r<t.node.length;++r)n.node[r]=c.onnx.NodeProto.toObject(t.node[r],e)}if(null!=t.name&&t.hasOwnProperty("name")&&(n.name=t.name),t.initializer&&t.initializer.length)for(n.initializer=[],r=0;r<t.initializer.length;++r)n.initializer[r]=c.onnx.TensorProto.toObject(t.initializer[r],e);if(null!=t.docString&&t.hasOwnProperty("docString")&&(n.docString=t.docString),t.input&&t.input.length)for(n.input=[],r=0;r<t.input.length;++r)n.input[r]=c.onnx.ValueInfoProto.toObject(t.input[r],e);if(t.output&&t.output.length)for(n.output=[],r=0;r<t.output.length;++r)n.output[r]=c.onnx.ValueInfoProto.toObject(t.output[r],e);if(t.valueInfo&&t.valueInfo.length)for(n.valueInfo=[],r=0;r<t.valueInfo.length;++r)n.valueInfo[r]=c.onnx.ValueInfoProto.toObject(t.valueInfo[r],e);if(t.quantizationAnnotation&&t.quantizationAnnotation.length)for(n.quantizationAnnotation=[],r=0;r<t.quantizationAnnotation.length;++r)n.quantizationAnnotation[r]=c.onnx.TensorAnnotation.toObject(t.quantizationAnnotation[r],e);return n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s.TensorProto=function(){function t(t){if(this.dims=[],this.floatData=[],this.int32Data=[],this.stringData=[],this.int64Data=[],this.externalData=[],this.doubleData=[],this.uint64Data=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.dims=l.emptyArray,t.prototype.dataType=0,t.prototype.segment=null,t.prototype.floatData=l.emptyArray,t.prototype.int32Data=l.emptyArray,t.prototype.stringData=l.emptyArray,t.prototype.int64Data=l.emptyArray,t.prototype.name="",t.prototype.docString="",t.prototype.rawData=l.newBuffer([]),t.prototype.externalData=l.emptyArray,t.prototype.dataLocation=0,t.prototype.doubleData=l.emptyArray,t.prototype.uint64Data=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.dims&&t.dims.length){e.uint32(10).fork();for(var n=0;n<t.dims.length;++n)e.int64(t.dims[n]);e.ldelim()}if(null!=t.dataType&&t.hasOwnProperty("dataType")&&e.uint32(16).int32(t.dataType),null!=t.segment&&t.hasOwnProperty("segment")&&c.onnx.TensorProto.Segment.encode(t.segment,e.uint32(26).fork()).ldelim(),null!=t.floatData&&t.floatData.length){for(e.uint32(34).fork(),n=0;n<t.floatData.length;++n)e.float(t.floatData[n]);e.ldelim()}if(null!=t.int32Data&&t.int32Data.length){for(e.uint32(42).fork(),n=0;n<t.int32Data.length;++n)e.int32(t.int32Data[n]);e.ldelim()}if(null!=t.stringData&&t.stringData.length)for(n=0;n<t.stringData.length;++n)e.uint32(50).bytes(t.stringData[n]);if(null!=t.int64Data&&t.int64Data.length){for(e.uint32(58).fork(),n=0;n<t.int64Data.length;++n)e.int64(t.int64Data[n]);e.ldelim()}if(null!=t.name&&t.hasOwnProperty("name")&&e.uint32(66).string(t.name),null!=t.rawData&&t.hasOwnProperty("rawData")&&e.uint32(74).bytes(t.rawData),null!=t.doubleData&&t.doubleData.length){for(e.uint32(82).fork(),n=0;n<t.doubleData.length;++n)e.double(t.doubleData[n]);e.ldelim()}if(null!=t.uint64Data&&t.uint64Data.length){for(e.uint32(90).fork(),n=0;n<t.uint64Data.length;++n)e.uint64(t.uint64Data[n]);e.ldelim()}if(null!=t.docString&&t.hasOwnProperty("docString")&&e.uint32(98).string(t.docString),null!=t.externalData&&t.externalData.length)for(n=0;n<t.externalData.length;++n)c.onnx.StringStringEntryProto.encode(t.externalData[n],e.uint32(106).fork()).ldelim();return null!=t.dataLocation&&t.hasOwnProperty("dataLocation")&&e.uint32(112).int32(t.dataLocation),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TensorProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:if(r.dims&&r.dims.length||(r.dims=[]),2==(7&i))for(var s=t.uint32()+t.pos;t.pos<s;)r.dims.push(t.int64());else r.dims.push(t.int64());break;case 2:r.dataType=t.int32();break;case 3:r.segment=c.onnx.TensorProto.Segment.decode(t,t.uint32());break;case 4:if(r.floatData&&r.floatData.length||(r.floatData=[]),2==(7&i))for(s=t.uint32()+t.pos;t.pos<s;)r.floatData.push(t.float());else r.floatData.push(t.float());break;case 5:if(r.int32Data&&r.int32Data.length||(r.int32Data=[]),2==(7&i))for(s=t.uint32()+t.pos;t.pos<s;)r.int32Data.push(t.int32());else r.int32Data.push(t.int32());break;case 6:r.stringData&&r.stringData.length||(r.stringData=[]),r.stringData.push(t.bytes());break;case 7:if(r.int64Data&&r.int64Data.length||(r.int64Data=[]),2==(7&i))for(s=t.uint32()+t.pos;t.pos<s;)r.int64Data.push(t.int64());else r.int64Data.push(t.int64());break;case 8:r.name=t.string();break;case 12:r.docString=t.string();break;case 9:r.rawData=t.bytes();break;case 13:r.externalData&&r.externalData.length||(r.externalData=[]),r.externalData.push(c.onnx.StringStringEntryProto.decode(t,t.uint32()));break;case 14:r.dataLocation=t.int32();break;case 10:if(r.doubleData&&r.doubleData.length||(r.doubleData=[]),2==(7&i))for(s=t.uint32()+t.pos;t.pos<s;)r.doubleData.push(t.double());else r.doubleData.push(t.double());break;case 11:if(r.uint64Data&&r.uint64Data.length||(r.uint64Data=[]),2==(7&i))for(s=t.uint32()+t.pos;t.pos<s;)r.uint64Data.push(t.uint64());else r.uint64Data.push(t.uint64());break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.dims&&t.hasOwnProperty("dims")){if(!Array.isArray(t.dims))return"dims: array expected";for(var e=0;e<t.dims.length;++e)if(!(l.isInteger(t.dims[e])||t.dims[e]&&l.isInteger(t.dims[e].low)&&l.isInteger(t.dims[e].high)))return"dims: integer|Long[] expected"}if(null!=t.dataType&&t.hasOwnProperty("dataType")&&!l.isInteger(t.dataType))return"dataType: integer expected";if(null!=t.segment&&t.hasOwnProperty("segment")&&(n=c.onnx.TensorProto.Segment.verify(t.segment)))return"segment."+n;if(null!=t.floatData&&t.hasOwnProperty("floatData")){if(!Array.isArray(t.floatData))return"floatData: array expected";for(e=0;e<t.floatData.length;++e)if("number"!=typeof t.floatData[e])return"floatData: number[] expected"}if(null!=t.int32Data&&t.hasOwnProperty("int32Data")){if(!Array.isArray(t.int32Data))return"int32Data: array expected";for(e=0;e<t.int32Data.length;++e)if(!l.isInteger(t.int32Data[e]))return"int32Data: integer[] expected"}if(null!=t.stringData&&t.hasOwnProperty("stringData")){if(!Array.isArray(t.stringData))return"stringData: array expected";for(e=0;e<t.stringData.length;++e)if(!(t.stringData[e]&&"number"==typeof t.stringData[e].length||l.isString(t.stringData[e])))return"stringData: buffer[] expected"}if(null!=t.int64Data&&t.hasOwnProperty("int64Data")){if(!Array.isArray(t.int64Data))return"int64Data: array expected";for(e=0;e<t.int64Data.length;++e)if(!(l.isInteger(t.int64Data[e])||t.int64Data[e]&&l.isInteger(t.int64Data[e].low)&&l.isInteger(t.int64Data[e].high)))return"int64Data: integer|Long[] expected"}if(null!=t.name&&t.hasOwnProperty("name")&&!l.isString(t.name))return"name: string expected";if(null!=t.docString&&t.hasOwnProperty("docString")&&!l.isString(t.docString))return"docString: string expected";if(null!=t.rawData&&t.hasOwnProperty("rawData")&&!(t.rawData&&"number"==typeof t.rawData.length||l.isString(t.rawData)))return"rawData: buffer expected";if(null!=t.externalData&&t.hasOwnProperty("externalData")){if(!Array.isArray(t.externalData))return"externalData: array expected";for(e=0;e<t.externalData.length;++e){var n;if(n=c.onnx.StringStringEntryProto.verify(t.externalData[e]))return"externalData."+n}}if(null!=t.dataLocation&&t.hasOwnProperty("dataLocation"))switch(t.dataLocation){default:return"dataLocation: enum value expected";case 0:case 1:}if(null!=t.doubleData&&t.hasOwnProperty("doubleData")){if(!Array.isArray(t.doubleData))return"doubleData: array expected";for(e=0;e<t.doubleData.length;++e)if("number"!=typeof t.doubleData[e])return"doubleData: number[] expected"}if(null!=t.uint64Data&&t.hasOwnProperty("uint64Data")){if(!Array.isArray(t.uint64Data))return"uint64Data: array expected";for(e=0;e<t.uint64Data.length;++e)if(!(l.isInteger(t.uint64Data[e])||t.uint64Data[e]&&l.isInteger(t.uint64Data[e].low)&&l.isInteger(t.uint64Data[e].high)))return"uint64Data: integer|Long[] expected"}return null},t.fromObject=function(t){if(t instanceof c.onnx.TensorProto)return t;var e=new c.onnx.TensorProto;if(t.dims){if(!Array.isArray(t.dims))throw TypeError(".onnx.TensorProto.dims: array expected");e.dims=[];for(var n=0;n<t.dims.length;++n)l.Long?(e.dims[n]=l.Long.fromValue(t.dims[n])).unsigned=!1:"string"==typeof t.dims[n]?e.dims[n]=parseInt(t.dims[n],10):"number"==typeof t.dims[n]?e.dims[n]=t.dims[n]:"object"==typeof t.dims[n]&&(e.dims[n]=new l.LongBits(t.dims[n].low>>>0,t.dims[n].high>>>0).toNumber())}if(null!=t.dataType&&(e.dataType=0|t.dataType),null!=t.segment){if("object"!=typeof t.segment)throw TypeError(".onnx.TensorProto.segment: object expected");e.segment=c.onnx.TensorProto.Segment.fromObject(t.segment)}if(t.floatData){if(!Array.isArray(t.floatData))throw TypeError(".onnx.TensorProto.floatData: array expected");for(e.floatData=[],n=0;n<t.floatData.length;++n)e.floatData[n]=Number(t.floatData[n])}if(t.int32Data){if(!Array.isArray(t.int32Data))throw TypeError(".onnx.TensorProto.int32Data: array expected");for(e.int32Data=[],n=0;n<t.int32Data.length;++n)e.int32Data[n]=0|t.int32Data[n]}if(t.stringData){if(!Array.isArray(t.stringData))throw TypeError(".onnx.TensorProto.stringData: array expected");for(e.stringData=[],n=0;n<t.stringData.length;++n)"string"==typeof t.stringData[n]?l.base64.decode(t.stringData[n],e.stringData[n]=l.newBuffer(l.base64.length(t.stringData[n])),0):t.stringData[n].length&&(e.stringData[n]=t.stringData[n])}if(t.int64Data){if(!Array.isArray(t.int64Data))throw TypeError(".onnx.TensorProto.int64Data: array expected");for(e.int64Data=[],n=0;n<t.int64Data.length;++n)l.Long?(e.int64Data[n]=l.Long.fromValue(t.int64Data[n])).unsigned=!1:"string"==typeof t.int64Data[n]?e.int64Data[n]=parseInt(t.int64Data[n],10):"number"==typeof t.int64Data[n]?e.int64Data[n]=t.int64Data[n]:"object"==typeof t.int64Data[n]&&(e.int64Data[n]=new l.LongBits(t.int64Data[n].low>>>0,t.int64Data[n].high>>>0).toNumber())}if(null!=t.name&&(e.name=String(t.name)),null!=t.docString&&(e.docString=String(t.docString)),null!=t.rawData&&("string"==typeof t.rawData?l.base64.decode(t.rawData,e.rawData=l.newBuffer(l.base64.length(t.rawData)),0):t.rawData.length&&(e.rawData=t.rawData)),t.externalData){if(!Array.isArray(t.externalData))throw TypeError(".onnx.TensorProto.externalData: array expected");for(e.externalData=[],n=0;n<t.externalData.length;++n){if("object"!=typeof t.externalData[n])throw TypeError(".onnx.TensorProto.externalData: object expected");e.externalData[n]=c.onnx.StringStringEntryProto.fromObject(t.externalData[n])}}switch(t.dataLocation){case"DEFAULT":case 0:e.dataLocation=0;break;case"EXTERNAL":case 1:e.dataLocation=1}if(t.doubleData){if(!Array.isArray(t.doubleData))throw TypeError(".onnx.TensorProto.doubleData: array expected");for(e.doubleData=[],n=0;n<t.doubleData.length;++n)e.doubleData[n]=Number(t.doubleData[n])}if(t.uint64Data){if(!Array.isArray(t.uint64Data))throw TypeError(".onnx.TensorProto.uint64Data: array expected");for(e.uint64Data=[],n=0;n<t.uint64Data.length;++n)l.Long?(e.uint64Data[n]=l.Long.fromValue(t.uint64Data[n])).unsigned=!0:"string"==typeof t.uint64Data[n]?e.uint64Data[n]=parseInt(t.uint64Data[n],10):"number"==typeof t.uint64Data[n]?e.uint64Data[n]=t.uint64Data[n]:"object"==typeof t.uint64Data[n]&&(e.uint64Data[n]=new l.LongBits(t.uint64Data[n].low>>>0,t.uint64Data[n].high>>>0).toNumber(!0))}return e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.dims=[],n.floatData=[],n.int32Data=[],n.stringData=[],n.int64Data=[],n.doubleData=[],n.uint64Data=[],n.externalData=[]),e.defaults&&(n.dataType=0,n.segment=null,n.name="",e.bytes===String?n.rawData="":(n.rawData=[],e.bytes!==Array&&(n.rawData=l.newBuffer(n.rawData))),n.docString="",n.dataLocation=e.enums===String?"DEFAULT":0),t.dims&&t.dims.length){n.dims=[];for(var r=0;r<t.dims.length;++r)"number"==typeof t.dims[r]?n.dims[r]=e.longs===String?String(t.dims[r]):t.dims[r]:n.dims[r]=e.longs===String?l.Long.prototype.toString.call(t.dims[r]):e.longs===Number?new l.LongBits(t.dims[r].low>>>0,t.dims[r].high>>>0).toNumber():t.dims[r]}if(null!=t.dataType&&t.hasOwnProperty("dataType")&&(n.dataType=t.dataType),null!=t.segment&&t.hasOwnProperty("segment")&&(n.segment=c.onnx.TensorProto.Segment.toObject(t.segment,e)),t.floatData&&t.floatData.length)for(n.floatData=[],r=0;r<t.floatData.length;++r)n.floatData[r]=e.json&&!isFinite(t.floatData[r])?String(t.floatData[r]):t.floatData[r];if(t.int32Data&&t.int32Data.length)for(n.int32Data=[],r=0;r<t.int32Data.length;++r)n.int32Data[r]=t.int32Data[r];if(t.stringData&&t.stringData.length)for(n.stringData=[],r=0;r<t.stringData.length;++r)n.stringData[r]=e.bytes===String?l.base64.encode(t.stringData[r],0,t.stringData[r].length):e.bytes===Array?Array.prototype.slice.call(t.stringData[r]):t.stringData[r];if(t.int64Data&&t.int64Data.length)for(n.int64Data=[],r=0;r<t.int64Data.length;++r)"number"==typeof t.int64Data[r]?n.int64Data[r]=e.longs===String?String(t.int64Data[r]):t.int64Data[r]:n.int64Data[r]=e.longs===String?l.Long.prototype.toString.call(t.int64Data[r]):e.longs===Number?new l.LongBits(t.int64Data[r].low>>>0,t.int64Data[r].high>>>0).toNumber():t.int64Data[r];if(null!=t.name&&t.hasOwnProperty("name")&&(n.name=t.name),null!=t.rawData&&t.hasOwnProperty("rawData")&&(n.rawData=e.bytes===String?l.base64.encode(t.rawData,0,t.rawData.length):e.bytes===Array?Array.prototype.slice.call(t.rawData):t.rawData),t.doubleData&&t.doubleData.length)for(n.doubleData=[],r=0;r<t.doubleData.length;++r)n.doubleData[r]=e.json&&!isFinite(t.doubleData[r])?String(t.doubleData[r]):t.doubleData[r];if(t.uint64Data&&t.uint64Data.length)for(n.uint64Data=[],r=0;r<t.uint64Data.length;++r)"number"==typeof t.uint64Data[r]?n.uint64Data[r]=e.longs===String?String(t.uint64Data[r]):t.uint64Data[r]:n.uint64Data[r]=e.longs===String?l.Long.prototype.toString.call(t.uint64Data[r]):e.longs===Number?new l.LongBits(t.uint64Data[r].low>>>0,t.uint64Data[r].high>>>0).toNumber(!0):t.uint64Data[r];if(null!=t.docString&&t.hasOwnProperty("docString")&&(n.docString=t.docString),t.externalData&&t.externalData.length)for(n.externalData=[],r=0;r<t.externalData.length;++r)n.externalData[r]=c.onnx.StringStringEntryProto.toObject(t.externalData[r],e);return null!=t.dataLocation&&t.hasOwnProperty("dataLocation")&&(n.dataLocation=e.enums===String?c.onnx.TensorProto.DataLocation[t.dataLocation]:t.dataLocation),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t.DataType=function(){var t={},e=Object.create(t);return e[t[0]="UNDEFINED"]=0,e[t[1]="FLOAT"]=1,e[t[2]="UINT8"]=2,e[t[3]="INT8"]=3,e[t[4]="UINT16"]=4,e[t[5]="INT16"]=5,e[t[6]="INT32"]=6,e[t[7]="INT64"]=7,e[t[8]="STRING"]=8,e[t[9]="BOOL"]=9,e[t[10]="FLOAT16"]=10,e[t[11]="DOUBLE"]=11,e[t[12]="UINT32"]=12,e[t[13]="UINT64"]=13,e[t[14]="COMPLEX64"]=14,e[t[15]="COMPLEX128"]=15,e[t[16]="BFLOAT16"]=16,e}(),t.Segment=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.begin=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.end=l.Long?l.Long.fromBits(0,0,!1):0,t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.begin&&t.hasOwnProperty("begin")&&e.uint32(8).int64(t.begin),null!=t.end&&t.hasOwnProperty("end")&&e.uint32(16).int64(t.end),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TensorProto.Segment;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.begin=t.int64();break;case 2:r.end=t.int64();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){return"object"!=typeof t||null===t?"object expected":null!=t.begin&&t.hasOwnProperty("begin")&&!(l.isInteger(t.begin)||t.begin&&l.isInteger(t.begin.low)&&l.isInteger(t.begin.high))?"begin: integer|Long expected":null!=t.end&&t.hasOwnProperty("end")&&!(l.isInteger(t.end)||t.end&&l.isInteger(t.end.low)&&l.isInteger(t.end.high))?"end: integer|Long expected":null},t.fromObject=function(t){if(t instanceof c.onnx.TensorProto.Segment)return t;var e=new c.onnx.TensorProto.Segment;return null!=t.begin&&(l.Long?(e.begin=l.Long.fromValue(t.begin)).unsigned=!1:"string"==typeof t.begin?e.begin=parseInt(t.begin,10):"number"==typeof t.begin?e.begin=t.begin:"object"==typeof t.begin&&(e.begin=new l.LongBits(t.begin.low>>>0,t.begin.high>>>0).toNumber())),null!=t.end&&(l.Long?(e.end=l.Long.fromValue(t.end)).unsigned=!1:"string"==typeof t.end?e.end=parseInt(t.end,10):"number"==typeof t.end?e.end=t.end:"object"==typeof t.end&&(e.end=new l.LongBits(t.end.low>>>0,t.end.high>>>0).toNumber())),e},t.toObject=function(t,e){e||(e={});var n={};if(e.defaults){if(l.Long){var r=new l.Long(0,0,!1);n.begin=e.longs===String?r.toString():e.longs===Number?r.toNumber():r}else n.begin=e.longs===String?"0":0;l.Long?(r=new l.Long(0,0,!1),n.end=e.longs===String?r.toString():e.longs===Number?r.toNumber():r):n.end=e.longs===String?"0":0}return null!=t.begin&&t.hasOwnProperty("begin")&&("number"==typeof t.begin?n.begin=e.longs===String?String(t.begin):t.begin:n.begin=e.longs===String?l.Long.prototype.toString.call(t.begin):e.longs===Number?new l.LongBits(t.begin.low>>>0,t.begin.high>>>0).toNumber():t.begin),null!=t.end&&t.hasOwnProperty("end")&&("number"==typeof t.end?n.end=e.longs===String?String(t.end):t.end:n.end=e.longs===String?l.Long.prototype.toString.call(t.end):e.longs===Number?new l.LongBits(t.end.low>>>0,t.end.high>>>0).toNumber():t.end),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),t.DataLocation=function(){var t={},e=Object.create(t);return e[t[0]="DEFAULT"]=0,e[t[1]="EXTERNAL"]=1,e}(),t}(),s.TensorShapeProto=function(){function t(t){if(this.dim=[],t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.dim=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(t,e){if(e||(e=u.create()),null!=t.dim&&t.dim.length)for(var n=0;n<t.dim.length;++n)c.onnx.TensorShapeProto.Dimension.encode(t.dim[n],e.uint32(10).fork()).ldelim();return e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TensorShapeProto;t.pos<n;){var i=t.uint32();i>>>3==1?(r.dim&&r.dim.length||(r.dim=[]),r.dim.push(c.onnx.TensorShapeProto.Dimension.decode(t,t.uint32()))):t.skipType(7&i)}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.dim&&t.hasOwnProperty("dim")){if(!Array.isArray(t.dim))return"dim: array expected";for(var e=0;e<t.dim.length;++e){var n=c.onnx.TensorShapeProto.Dimension.verify(t.dim[e]);if(n)return"dim."+n}}return null},t.fromObject=function(t){if(t instanceof c.onnx.TensorShapeProto)return t;var e=new c.onnx.TensorShapeProto;if(t.dim){if(!Array.isArray(t.dim))throw TypeError(".onnx.TensorShapeProto.dim: array expected");e.dim=[];for(var n=0;n<t.dim.length;++n){if("object"!=typeof t.dim[n])throw TypeError(".onnx.TensorShapeProto.dim: object expected");e.dim[n]=c.onnx.TensorShapeProto.Dimension.fromObject(t.dim[n])}}return e},t.toObject=function(t,e){e||(e={});var n={};if((e.arrays||e.defaults)&&(n.dim=[]),t.dim&&t.dim.length){n.dim=[];for(var r=0;r<t.dim.length;++r)n.dim[r]=c.onnx.TensorShapeProto.Dimension.toObject(t.dim[r],e)}return n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t.Dimension=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}var e;return t.prototype.dimValue=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.dimParam="",t.prototype.denotation="",Object.defineProperty(t.prototype,"value",{get:l.oneOfGetter(e=["dimValue","dimParam"]),set:l.oneOfSetter(e)}),t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.dimValue&&t.hasOwnProperty("dimValue")&&e.uint32(8).int64(t.dimValue),null!=t.dimParam&&t.hasOwnProperty("dimParam")&&e.uint32(18).string(t.dimParam),null!=t.denotation&&t.hasOwnProperty("denotation")&&e.uint32(26).string(t.denotation),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TensorShapeProto.Dimension;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.dimValue=t.int64();break;case 2:r.dimParam=t.string();break;case 3:r.denotation=t.string();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";var e={};if(null!=t.dimValue&&t.hasOwnProperty("dimValue")&&(e.value=1,!(l.isInteger(t.dimValue)||t.dimValue&&l.isInteger(t.dimValue.low)&&l.isInteger(t.dimValue.high))))return"dimValue: integer|Long expected";if(null!=t.dimParam&&t.hasOwnProperty("dimParam")){if(1===e.value)return"value: multiple values";if(e.value=1,!l.isString(t.dimParam))return"dimParam: string expected"}return null!=t.denotation&&t.hasOwnProperty("denotation")&&!l.isString(t.denotation)?"denotation: string expected":null},t.fromObject=function(t){if(t instanceof c.onnx.TensorShapeProto.Dimension)return t;var e=new c.onnx.TensorShapeProto.Dimension;return null!=t.dimValue&&(l.Long?(e.dimValue=l.Long.fromValue(t.dimValue)).unsigned=!1:"string"==typeof t.dimValue?e.dimValue=parseInt(t.dimValue,10):"number"==typeof t.dimValue?e.dimValue=t.dimValue:"object"==typeof t.dimValue&&(e.dimValue=new l.LongBits(t.dimValue.low>>>0,t.dimValue.high>>>0).toNumber())),null!=t.dimParam&&(e.dimParam=String(t.dimParam)),null!=t.denotation&&(e.denotation=String(t.denotation)),e},t.toObject=function(t,e){e||(e={});var n={};return e.defaults&&(n.denotation=""),null!=t.dimValue&&t.hasOwnProperty("dimValue")&&("number"==typeof t.dimValue?n.dimValue=e.longs===String?String(t.dimValue):t.dimValue:n.dimValue=e.longs===String?l.Long.prototype.toString.call(t.dimValue):e.longs===Number?new l.LongBits(t.dimValue.low>>>0,t.dimValue.high>>>0).toNumber():t.dimValue,e.oneofs&&(n.value="dimValue")),null!=t.dimParam&&t.hasOwnProperty("dimParam")&&(n.dimParam=t.dimParam,e.oneofs&&(n.value="dimParam")),null!=t.denotation&&t.hasOwnProperty("denotation")&&(n.denotation=t.denotation),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),t}(),s.TypeProto=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}var e;return t.prototype.tensorType=null,t.prototype.denotation="",Object.defineProperty(t.prototype,"value",{get:l.oneOfGetter(e=["tensorType"]),set:l.oneOfSetter(e)}),t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.tensorType&&t.hasOwnProperty("tensorType")&&c.onnx.TypeProto.Tensor.encode(t.tensorType,e.uint32(10).fork()).ldelim(),null!=t.denotation&&t.hasOwnProperty("denotation")&&e.uint32(50).string(t.denotation),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TypeProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.tensorType=c.onnx.TypeProto.Tensor.decode(t,t.uint32());break;case 6:r.denotation=t.string();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.tensorType&&t.hasOwnProperty("tensorType")){var e=c.onnx.TypeProto.Tensor.verify(t.tensorType);if(e)return"tensorType."+e}return null!=t.denotation&&t.hasOwnProperty("denotation")&&!l.isString(t.denotation)?"denotation: string expected":null},t.fromObject=function(t){if(t instanceof c.onnx.TypeProto)return t;var e=new c.onnx.TypeProto;if(null!=t.tensorType){if("object"!=typeof t.tensorType)throw TypeError(".onnx.TypeProto.tensorType: object expected");e.tensorType=c.onnx.TypeProto.Tensor.fromObject(t.tensorType)}return null!=t.denotation&&(e.denotation=String(t.denotation)),e},t.toObject=function(t,e){e||(e={});var n={};return e.defaults&&(n.denotation=""),null!=t.tensorType&&t.hasOwnProperty("tensorType")&&(n.tensorType=c.onnx.TypeProto.Tensor.toObject(t.tensorType,e),e.oneofs&&(n.value="tensorType")),null!=t.denotation&&t.hasOwnProperty("denotation")&&(n.denotation=t.denotation),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t.Tensor=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.elemType=0,t.prototype.shape=null,t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.elemType&&t.hasOwnProperty("elemType")&&e.uint32(8).int32(t.elemType),null!=t.shape&&t.hasOwnProperty("shape")&&c.onnx.TensorShapeProto.encode(t.shape,e.uint32(18).fork()).ldelim(),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.TypeProto.Tensor;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.elemType=t.int32();break;case 2:r.shape=c.onnx.TensorShapeProto.decode(t,t.uint32());break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){if("object"!=typeof t||null===t)return"object expected";if(null!=t.elemType&&t.hasOwnProperty("elemType")&&!l.isInteger(t.elemType))return"elemType: integer expected";if(null!=t.shape&&t.hasOwnProperty("shape")){var e=c.onnx.TensorShapeProto.verify(t.shape);if(e)return"shape."+e}return null},t.fromObject=function(t){if(t instanceof c.onnx.TypeProto.Tensor)return t;var e=new c.onnx.TypeProto.Tensor;if(null!=t.elemType&&(e.elemType=0|t.elemType),null!=t.shape){if("object"!=typeof t.shape)throw TypeError(".onnx.TypeProto.Tensor.shape: object expected");e.shape=c.onnx.TensorShapeProto.fromObject(t.shape)}return e},t.toObject=function(t,e){e||(e={});var n={};return e.defaults&&(n.elemType=0,n.shape=null),null!=t.elemType&&t.hasOwnProperty("elemType")&&(n.elemType=t.elemType),null!=t.shape&&t.hasOwnProperty("shape")&&(n.shape=c.onnx.TensorShapeProto.toObject(t.shape,e)),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),t}(),s.OperatorSetIdProto=function(){function t(t){if(t)for(var e=Object.keys(t),n=0;n<e.length;++n)null!=t[e[n]]&&(this[e[n]]=t[e[n]])}return t.prototype.domain="",t.prototype.version=l.Long?l.Long.fromBits(0,0,!1):0,t.create=function(e){return new t(e)},t.encode=function(t,e){return e||(e=u.create()),null!=t.domain&&t.hasOwnProperty("domain")&&e.uint32(10).string(t.domain),null!=t.version&&t.hasOwnProperty("version")&&e.uint32(16).int64(t.version),e},t.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},t.decode=function(t,e){t instanceof a||(t=a.create(t));for(var n=void 0===e?t.len:t.pos+e,r=new c.onnx.OperatorSetIdProto;t.pos<n;){var i=t.uint32();switch(i>>>3){case 1:r.domain=t.string();break;case 2:r.version=t.int64();break;default:t.skipType(7&i)}}return r},t.decodeDelimited=function(t){return t instanceof a||(t=new a(t)),this.decode(t,t.uint32())},t.verify=function(t){return"object"!=typeof t||null===t?"object expected":null!=t.domain&&t.hasOwnProperty("domain")&&!l.isString(t.domain)?"domain: string expected":null!=t.version&&t.hasOwnProperty("version")&&!(l.isInteger(t.version)||t.version&&l.isInteger(t.version.low)&&l.isInteger(t.version.high))?"version: integer|Long expected":null},t.fromObject=function(t){if(t instanceof c.onnx.OperatorSetIdProto)return t;var e=new c.onnx.OperatorSetIdProto;return null!=t.domain&&(e.domain=String(t.domain)),null!=t.version&&(l.Long?(e.version=l.Long.fromValue(t.version)).unsigned=!1:"string"==typeof t.version?e.version=parseInt(t.version,10):"number"==typeof t.version?e.version=t.version:"object"==typeof t.version&&(e.version=new l.LongBits(t.version.low>>>0,t.version.high>>>0).toNumber())),e},t.toObject=function(t,e){e||(e={});var n={};if(e.defaults)if(n.domain="",l.Long){var r=new l.Long(0,0,!1);n.version=e.longs===String?r.toString():e.longs===Number?r.toNumber():r}else n.version=e.longs===String?"0":0;return null!=t.domain&&t.hasOwnProperty("domain")&&(n.domain=t.domain),null!=t.version&&t.hasOwnProperty("version")&&("number"==typeof t.version?n.version=e.longs===String?String(t.version):t.version:n.version=e.longs===String?l.Long.prototype.toString.call(t.version):e.longs===Number?new l.LongBits(t.version.low>>>0,t.version.high>>>0).toNumber():t.version),n},t.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},t}(),s),t.exports=c},2100:(t,e,n)=>{"use strict";t.exports=n(9482)},9482:(t,e,n)=>{"use strict";var r=e;function i(){r.util._configure(),r.Writer._configure(r.BufferWriter),r.Reader._configure(r.BufferReader)}r.build="minimal",r.Writer=n(1173),r.BufferWriter=n(3155),r.Reader=n(1408),r.BufferReader=n(593),r.util=n(9693),r.rpc=n(5994),r.roots=n(5054),r.configure=i,i()},1408:(t,e,n)=>{"use strict";t.exports=u;var r,i=n(9693),s=i.LongBits,o=i.utf8;function a(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function u(t){this.buf=t,this.pos=0,this.len=t.length}var l,c="undefined"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new u(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new u(t);throw Error("illegal buffer")},d=function(){return i.Buffer?function(t){return(u.create=function(t){return i.Buffer.isBuffer(t)?new r(t):c(t)})(t)}:c};function h(){var t=new s(0,0),e=0;if(!(this.len-this.pos>4)){for(;e<3;++e){if(this.pos>=this.len)throw a(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*e)>>>0,t}for(;e<4;++e)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(e=0,this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw a(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function p(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}function f(){if(this.pos+8>this.len)throw a(this,8);return new s(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}u.create=d(),u.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,u.prototype.uint32=(l=4294967295,function(){if(l=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return l;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return l}),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return 0|p(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var t=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},u.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var t=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},u.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw a(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)},u.prototype.string=function(){var t=this.bytes();return o.read(t,0,t.length)},u.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw a(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw a(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(t=7&this.uint32());)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},u._configure=function(t){r=t,u.create=d(),r._configure();var e=i.Long?"toLong":"toNumber";i.merge(u.prototype,{int64:function(){return h.call(this)[e](!1)},uint64:function(){return h.call(this)[e](!0)},sint64:function(){return h.call(this).zzDecode()[e](!1)},fixed64:function(){return f.call(this)[e](!0)},sfixed64:function(){return f.call(this)[e](!1)}})}},593:(t,e,n)=>{"use strict";t.exports=s;var r=n(1408);(s.prototype=Object.create(r.prototype)).constructor=s;var i=n(9693);function s(t){r.call(this,t)}s._configure=function(){i.Buffer&&(s.prototype._slice=i.Buffer.prototype.slice)},s.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))},s._configure()},5054:t=>{"use strict";t.exports={}},5994:(t,e,n)=>{"use strict";e.Service=n(7948)},7948:(t,e,n)=>{"use strict";t.exports=i;var r=n(9693);function i(t,e,n){if("function"!=typeof t)throw TypeError("rpcImpl must be a function");r.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=Boolean(e),this.responseDelimited=Boolean(n)}(i.prototype=Object.create(r.EventEmitter.prototype)).constructor=i,i.prototype.rpcCall=function t(e,n,i,s,o){if(!s)throw TypeError("request must be specified");var a=this;if(!o)return r.asPromise(t,a,e,n,i,s);if(a.rpcImpl)try{return a.rpcImpl(e,n[a.requestDelimited?"encodeDelimited":"encode"](s).finish(),(function(t,n){if(t)return a.emit("error",t,e),o(t);if(null!==n){if(!(n instanceof i))try{n=i[a.responseDelimited?"decodeDelimited":"decode"](n)}catch(t){return a.emit("error",t,e),o(t)}return a.emit("data",n,e),o(null,n)}a.end(!0)}))}catch(t){return a.emit("error",t,e),void setTimeout((function(){o(t)}),0)}else setTimeout((function(){o(Error("already ended"))}),0)},i.prototype.end=function(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},1945:(t,e,n)=>{"use strict";t.exports=i;var r=n(9693);function i(t,e){this.lo=t>>>0,this.hi=e>>>0}var s=i.zero=new i(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var o=i.zeroHash="\0\0\0\0\0\0\0\0";i.fromNumber=function(t){if(0===t)return s;var e=t<0;e&&(t=-t);var n=t>>>0,r=(t-n)/4294967296>>>0;return e&&(r=~r>>>0,n=~n>>>0,++n>4294967295&&(n=0,++r>4294967295&&(r=0))),new i(n,r)},i.from=function(t){if("number"==typeof t)return i.fromNumber(t);if(r.isString(t)){if(!r.Long)return i.fromNumber(parseInt(t,10));t=r.Long.fromString(t)}return t.low||t.high?new i(t.low>>>0,t.high>>>0):s},i.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=1+~this.lo>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+4294967296*n)}return this.lo+4294967296*this.hi},i.prototype.toLong=function(t){return r.Long?new r.Long(0|this.lo,0|this.hi,Boolean(t)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(t)}};var a=String.prototype.charCodeAt;i.fromHash=function(t){return t===o?s:new i((a.call(t,0)|a.call(t,1)<<8|a.call(t,2)<<16|a.call(t,3)<<24)>>>0,(a.call(t,4)|a.call(t,5)<<8|a.call(t,6)<<16|a.call(t,7)<<24)>>>0)},i.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},i.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},i.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},i.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===e?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}},9693:function(t,e,n){"use strict";var r=e;function i(t,e,n){for(var r=Object.keys(e),i=0;i<r.length;++i)void 0!==t[r[i]]&&n||(t[r[i]]=e[r[i]]);return t}function s(t){function e(t,n){if(!(this instanceof e))return new e(t,n);Object.defineProperty(this,"message",{get:function(){return t}}),Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),n&&i(this,n)}return(e.prototype=Object.create(Error.prototype)).constructor=e,Object.defineProperty(e.prototype,"name",{get:function(){return t}}),e.prototype.toString=function(){return this.name+": "+this.message},e}r.asPromise=n(4537),r.base64=n(7419),r.EventEmitter=n(9211),r.float=n(945),r.inquire=n(7199),r.utf8=n(4997),r.pool=n(6662),r.LongBits=n(1945),r.isNode=Boolean(void 0!==n.g&&n.g&&n.g.process&&n.g.process.versions&&n.g.process.versions.node),r.global=r.isNode&&n.g||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,r.emptyArray=Object.freeze?Object.freeze([]):[],r.emptyObject=Object.freeze?Object.freeze({}):{},r.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},r.isString=function(t){return"string"==typeof t||t instanceof String},r.isObject=function(t){return t&&"object"==typeof t},r.isset=r.isSet=function(t,e){var n=t[e];return!(null==n||!t.hasOwnProperty(e))&&("object"!=typeof n||(Array.isArray(n)?n.length:Object.keys(n).length)>0)},r.Buffer=function(){try{var t=r.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch(t){return null}}(),r._Buffer_from=null,r._Buffer_allocUnsafe=null,r.newBuffer=function(t){return"number"==typeof t?r.Buffer?r._Buffer_allocUnsafe(t):new r.Array(t):r.Buffer?r._Buffer_from(t):"undefined"==typeof Uint8Array?t:new Uint8Array(t)},r.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,r.Long=r.global.dcodeIO&&r.global.dcodeIO.Long||r.global.Long||r.inquire("long"),r.key2Re=/^true|false|0|1$/,r.key32Re=/^-?(?:0|[1-9][0-9]*)$/,r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,r.longToHash=function(t){return t?r.LongBits.from(t).toHash():r.LongBits.zeroHash},r.longFromHash=function(t,e){var n=r.LongBits.fromHash(t);return r.Long?r.Long.fromBits(n.lo,n.hi,e):n.toNumber(Boolean(e))},r.merge=i,r.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)},r.newError=s,r.ProtocolError=s("ProtocolError"),r.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var t=Object.keys(this),n=t.length-1;n>-1;--n)if(1===e[t[n]]&&void 0!==this[t[n]]&&null!==this[t[n]])return t[n]}},r.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}},r.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},r._configure=function(){var t=r.Buffer;t?(r._Buffer_from=t.from!==Uint8Array.from&&t.from||function(e,n){return new t(e,n)},r._Buffer_allocUnsafe=t.allocUnsafe||function(e){return new t(e)}):r._Buffer_from=r._Buffer_allocUnsafe=null}},1173:(t,e,n)=>{"use strict";t.exports=d;var r,i=n(9693),s=i.LongBits,o=i.base64,a=i.utf8;function u(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}function l(){}function c(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function d(){this.len=0,this.head=new u(l,0,0),this.tail=this.head,this.states=null}var h=function(){return i.Buffer?function(){return(d.create=function(){return new r})()}:function(){return new d}};function p(t,e,n){e[n]=255&t}function f(t,e){this.len=t,this.next=void 0,this.val=e}function g(t,e,n){for(;t.hi;)e[n++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[n++]=127&t.lo|128,t.lo=t.lo>>>7;e[n++]=t.lo}function m(t,e,n){e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24}d.create=h(),d.alloc=function(t){return new i.Array(t)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(t,e,n){return this.tail=this.tail.next=new u(t,e,n),this.len+=e,this},f.prototype=Object.create(u.prototype),f.prototype.fn=function(t,e,n){for(;t>127;)e[n++]=127&t|128,t>>>=7;e[n]=t},d.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new f((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},d.prototype.int32=function(t){return t<0?this._push(g,10,s.fromNumber(t)):this.uint32(t)},d.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},d.prototype.uint64=function(t){var e=s.from(t);return this._push(g,e.length(),e)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(t){var e=s.from(t).zzEncode();return this._push(g,e.length(),e)},d.prototype.bool=function(t){return this._push(p,1,t?1:0)},d.prototype.fixed32=function(t){return this._push(m,4,t>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(t){var e=s.from(t);return this._push(m,4,e.lo)._push(m,4,e.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(t){return this._push(i.float.writeFloatLE,4,t)},d.prototype.double=function(t){return this._push(i.float.writeDoubleLE,8,t)};var _=i.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var r=0;r<t.length;++r)e[n+r]=t[r]};d.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(p,1,0);if(i.isString(t)){var n=d.alloc(e=o.length(t));o.decode(t,n,0),t=n}return this.uint32(e)._push(_,e,t)},d.prototype.string=function(t){var e=a.length(t);return e?this.uint32(e)._push(a.write,e,t):this._push(p,1,0)},d.prototype.fork=function(){return this.states=new c(this),this.head=this.tail=new u(l,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(l,0,0),this.len=0),this},d.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this},d.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e},d._configure=function(t){r=t,d.create=h(),r._configure()}},3155:(t,e,n)=>{"use strict";t.exports=s;var r=n(1173);(s.prototype=Object.create(r.prototype)).constructor=s;var i=n(9693);function s(){r.call(this)}function o(t,e,n){t.length<40?i.utf8.write(t,e,n):e.utf8Write?e.utf8Write(t,n):e.write(t,n)}s._configure=function(){s.alloc=i._Buffer_allocUnsafe,s.writeBytesBuffer=i.Buffer&&i.Buffer.prototype instanceof Uint8Array&&"set"===i.Buffer.prototype.set.name?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var r=0;r<t.length;)e[n++]=t[r++]}},s.prototype.bytes=function(t){i.isString(t)&&(t=i._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(s.writeBytesBuffer,e,t),this},s.prototype.string=function(t){var e=i.Buffer.byteLength(t);return this.uint32(e),e&&this._push(o,e,t),this},s._configure()},7714:(t,e,n)=>{"use strict";e.R=void 0;const r=n(6919),i=n(7448);e.R=new class{async init(){}async createSessionHandler(t,e){const n=new r.Session(e);return await n.loadModel(t),new i.OnnxjsSessionHandler(n)}}},4200:(t,e,n)=>{"use strict";e.c8=e.rX=void 0;const r=n(1670),i=n(5381),s=n(2157),o=n(2306);e.rX=()=>{if(("number"!=typeof r.env.wasm.initTimeout||r.env.wasm.initTimeout<0)&&(r.env.wasm.initTimeout=0),"boolean"!=typeof r.env.wasm.simd&&(r.env.wasm.simd=!0),"boolean"!=typeof r.env.wasm.proxy&&(r.env.wasm.proxy=!1),"number"!=typeof r.env.wasm.numThreads||!Number.isInteger(r.env.wasm.numThreads)||r.env.wasm.numThreads<=0){const t="undefined"==typeof navigator?(0,i.cpus)().length:navigator.hardwareConcurrency;r.env.wasm.numThreads=Math.min(4,Math.ceil((t||1)/2))}},e.c8=new class{async init(){(0,e.rX)(),await(0,s.initWasm)()}async createSessionHandler(t,e){const n=new o.OnnxruntimeWebAssemblySessionHandler;return await n.loadModel(t,e),Promise.resolve(n)}}},6018:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||r(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(n(1670),e);const s=n(1670);{const t=n(7714).R;(0,s.registerBackend)("webgl",t,-10)}{const t=n(4200).c8;(0,s.registerBackend)("cpu",t,10),(0,s.registerBackend)("wasm",t,10),(0,s.registerBackend)("xnnpack",t,9)}},246:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createAttributeWithCacheKey=void 0;class n{constructor(t){Object.assign(this,t)}get cacheKey(){return this._cacheKey||(this._cacheKey=Object.getOwnPropertyNames(this).sort().map((t=>`${this[t]}`)).join(";")),this._cacheKey}}e.createAttributeWithCacheKey=t=>new n(t)},7778:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Attribute=void 0;const r=n(1446),i=n(9395),s=n(9162),o=n(2517);var a=i.onnxruntime.experimental.fbs;class u{constructor(t){if(this._attributes=new Map,null!=t){for(const e of t)e instanceof r.onnx.AttributeProto?this._attributes.set(e.name,[u.getValue(e),u.getType(e)]):e instanceof a.Attribute&&this._attributes.set(e.name(),[u.getValue(e),u.getType(e)]);if(this._attributes.size<t.length)throw new Error("duplicated attribute names")}}set(t,e,n){this._attributes.set(t,[n,e])}delete(t){this._attributes.delete(t)}getFloat(t,e){return this.get(t,"float",e)}getInt(t,e){return this.get(t,"int",e)}getString(t,e){return this.get(t,"string",e)}getTensor(t,e){return this.get(t,"tensor",e)}getFloats(t,e){return this.get(t,"floats",e)}getInts(t,e){return this.get(t,"ints",e)}getStrings(t,e){return this.get(t,"strings",e)}getTensors(t,e){return this.get(t,"tensors",e)}get(t,e,n){const r=this._attributes.get(t);if(void 0===r){if(void 0!==n)return n;throw new Error(`required attribute not found: ${t}`)}if(r[1]!==e)throw new Error(`type mismatch: expected ${e} but got ${r[1]}`);return r[0]}static getType(t){const e=t instanceof r.onnx.AttributeProto?t.type:t.type();switch(e){case r.onnx.AttributeProto.AttributeType.FLOAT:return"float";case r.onnx.AttributeProto.AttributeType.INT:return"int";case r.onnx.AttributeProto.AttributeType.STRING:return"string";case r.onnx.AttributeProto.AttributeType.TENSOR:return"tensor";case r.onnx.AttributeProto.AttributeType.FLOATS:return"floats";case r.onnx.AttributeProto.AttributeType.INTS:return"ints";case r.onnx.AttributeProto.AttributeType.STRINGS:return"strings";case r.onnx.AttributeProto.AttributeType.TENSORS:return"tensors";default:throw new Error(`attribute type is not supported yet: ${r.onnx.AttributeProto.AttributeType[e]}`)}}static getValue(t){const e=t instanceof r.onnx.AttributeProto?t.type:t.type();if(e===r.onnx.AttributeProto.AttributeType.GRAPH||e===r.onnx.AttributeProto.AttributeType.GRAPHS)throw new Error("graph attribute is not supported yet");const n=this.getValueNoCheck(t);if(e===r.onnx.AttributeProto.AttributeType.INT&&o.LongUtil.isLong(n))return o.LongUtil.longToNumber(n);if(e===r.onnx.AttributeProto.AttributeType.INTS){const t=n,e=new Array(t.length);for(let n=0;n<t.length;n++){const r=t[n];e[n]=o.LongUtil.longToNumber(r)}return e}if(e===r.onnx.AttributeProto.AttributeType.TENSOR)return t instanceof r.onnx.AttributeProto?s.Tensor.fromProto(n):s.Tensor.fromOrtTensor(n);if(e===r.onnx.AttributeProto.AttributeType.TENSORS){if(t instanceof r.onnx.AttributeProto)return n.map((t=>s.Tensor.fromProto(t)));if(t instanceof a.Attribute)return n.map((t=>s.Tensor.fromOrtTensor(t)))}if(e===r.onnx.AttributeProto.AttributeType.STRING&&t instanceof r.onnx.AttributeProto){const t=n;return(0,o.decodeUtf8String)(t)}return e===r.onnx.AttributeProto.AttributeType.STRINGS&&t instanceof r.onnx.AttributeProto?n.map(o.decodeUtf8String):n}static getValueNoCheck(t){return t instanceof r.onnx.AttributeProto?this.getValueNoCheckFromOnnxFormat(t):this.getValueNoCheckFromOrtFormat(t)}static getValueNoCheckFromOnnxFormat(t){switch(t.type){case r.onnx.AttributeProto.AttributeType.FLOAT:return t.f;case r.onnx.AttributeProto.AttributeType.INT:return t.i;case r.onnx.AttributeProto.AttributeType.STRING:return t.s;case r.onnx.AttributeProto.AttributeType.TENSOR:return t.t;case r.onnx.AttributeProto.AttributeType.GRAPH:return t.g;case r.onnx.AttributeProto.AttributeType.FLOATS:return t.floats;case r.onnx.AttributeProto.AttributeType.INTS:return t.ints;case r.onnx.AttributeProto.AttributeType.STRINGS:return t.strings;case r.onnx.AttributeProto.AttributeType.TENSORS:return t.tensors;case r.onnx.AttributeProto.AttributeType.GRAPHS:return t.graphs;default:throw new Error(`unsupported attribute type: ${r.onnx.AttributeProto.AttributeType[t.type]}`)}}static getValueNoCheckFromOrtFormat(t){switch(t.type()){case a.AttributeType.FLOAT:return t.f();case a.AttributeType.INT:return t.i();case a.AttributeType.STRING:return t.s();case a.AttributeType.TENSOR:return t.t();case a.AttributeType.GRAPH:return t.g();case a.AttributeType.FLOATS:return t.floatsArray();case a.AttributeType.INTS:{const e=[];for(let n=0;n<t.intsLength();n++)e.push(t.ints(n));return e}case a.AttributeType.STRINGS:{const e=[];for(let n=0;n<t.stringsLength();n++)e.push(t.strings(n));return e}case a.AttributeType.TENSORS:{const e=[];for(let n=0;n<t.tensorsLength();n++)e.push(t.tensors(n));return e}default:throw new Error(`unsupported attribute type: ${a.AttributeType[t.type()]}`)}}}e.Attribute=u},7091:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resolveBackend=e.backend=void 0;const r=n(5038),i=new Map;async function s(t){const n=e.backend;if(void 0!==n[t]&&function(t){const e=t;return"initialize"in e&&"function"==typeof e.initialize&&"createSessionHandler"in e&&"function"==typeof e.createSessionHandler&&"dispose"in e&&"function"==typeof e.dispose}(n[t])){const e=n[t];let r=e.initialize();if("object"==typeof r&&"then"in r&&(r=await r),r)return i.set(t,e),e}}e.backend={webgl:new r.WebGLBackend},e.resolveBackend=async function t(e){if(!e)return t(["webgl"]);{const t="string"==typeof e?[e]:e;for(const e of t){const t=i.get(e);if(t)return t;const n=await s(e);if(n)return n}}throw new Error("no available backend to use")}},5038:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebGLBackend=void 0;const r=n(1670),i=n(6231),s=n(6416),o=n(7305);e.WebGLBackend=class{get contextId(){return r.env.webgl.contextId}set contextId(t){r.env.webgl.contextId=t}get matmulMaxBatchSize(){return r.env.webgl.matmulMaxBatchSize}set matmulMaxBatchSize(t){r.env.webgl.matmulMaxBatchSize=t}get textureCacheMode(){return r.env.webgl.textureCacheMode}set textureCacheMode(t){r.env.webgl.textureCacheMode=t}get pack(){return r.env.webgl.pack}set pack(t){r.env.webgl.pack=t}get async(){return r.env.webgl.async}set async(t){r.env.webgl.async=t}initialize(){try{return this.glContext=(0,o.createWebGLContext)(this.contextId),"number"!=typeof this.matmulMaxBatchSize&&(this.matmulMaxBatchSize=16),"string"!=typeof this.textureCacheMode&&(this.textureCacheMode="full"),"boolean"!=typeof this.pack&&(this.pack=!1),"boolean"!=typeof this.async&&(this.async=!1),i.Logger.setWithEnv(r.env),i.Logger.verbose("WebGLBackend",`Created WebGLContext: ${typeof this.glContext} with matmulMaxBatchSize: ${this.matmulMaxBatchSize}; textureCacheMode: ${this.textureCacheMode}; pack: ${this.pack}; async: ${this.async}.`),!0}catch(t){return i.Logger.warning("WebGLBackend",`Unable to initialize WebGLBackend. ${t}`),!1}}createSessionHandler(t){return new s.WebGLSessionHandler(this,t)}dispose(){this.glContext.dispose()}}},5107:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CoordsGlslLib=void 0;const r=n(2517),i=n(8520),s=n(5060),o=n(7859),a=n(9390);class u extends i.GlslLib{constructor(t){super(t)}getFunctions(){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},this.offsetToCoords()),this.coordsToOffset()),this.toVec()),this.valueFrom()),this.getCommonUtilFuncs()),this.getInputsSamplingSnippets()),this.getOutputSamplingSnippet())}getCustomTypes(){return{}}offsetToCoords(){return{offsetToCoords:new i.GlslLibRoutine("\n      vec2 offsetToCoords(int offset, int width, int height) {\n        int t = offset / width;\n        int s = offset - t*width;\n        vec2 coords = (vec2(s,t) + vec2(0.5,0.5)) / vec2(width, height);\n        return coords;\n      }\n      ")}}coordsToOffset(){return{coordsToOffset:new i.GlslLibRoutine("\n      int coordsToOffset(vec2 coords, int width, int height) {\n        float s = coords.s * float(width);\n        float t = coords.t * float(height);\n        int offset = int(t) * width + int(s);\n        return offset;\n      }\n      ")}}getOutputSamplingSnippet(){const t=this.context.outputTextureLayout;return t.isPacked?this.getPackedOutputSamplingSnippet(t):this.getUnpackedOutputSamplingSnippet(t)}getPackedOutputSamplingSnippet(t){const e=t.unpackedShape,n=[t.width,t.height],r={},o="getOutputCoords";switch(e.length){case 0:r[o]=this.getOutputScalarCoords();break;case 1:r[o]=this.getOutputPacked1DCoords(e,n);break;case 2:r[o]=this.getOutputPacked2DCoords(e,n);break;case 3:r[o]=this.getOutputPacked3DCoords(e,n);break;default:r[o]=this.getOutputPackedNDCoords(e,n)}const a=`\n      void setOutput(vec4 val) {\n        ${(0,s.getGlsl)(this.context.glContext.version).output} = val;\n      }\n    `;return r.floatTextureSetRGBA=new i.GlslLibRoutine(a),r}getUnpackedOutputSamplingSnippet(t){const e=t.unpackedShape,n=[t.width,t.height],r={},o="getOutputCoords";switch(e.length){case 0:r[o]=this.getOutputScalarCoords();break;case 1:r[o]=this.getOutputUnpacked1DCoords(e,n);break;case 2:r[o]=this.getOutputUnpacked2DCoords(e,n);break;case 3:r[o]=this.getOutputUnpacked3DCoords(e,n);break;case 4:r[o]=this.getOutputUnpacked4DCoords(e,n);break;case 5:r[o]=this.getOutputUnpacked5DCoords(e,n);break;case 6:r[o]=this.getOutputUnpacked6DCoords(e,n);break;default:throw new Error(`Unsupported output dimensionality: ${e.length}`)}const a=`\n        void setOutput(float val) {\n          ${(0,s.getGlsl)(this.context.glContext.version).output} = vec4(val, 0, 0, 0);\n        }\n    `;return r.floatTextureSetR=new i.GlslLibRoutine(a),r}getOutputScalarCoords(){return new i.GlslLibRoutine("\n      int getOutputCoords() {\n        return 0;\n      }\n    ")}getOutputPacked1DCoords(t,e){const n=e;let r="";return 1===n[0]?(r=`\n          int getOutputCoords() {\n            return 2 * int(TexCoords.y * ${n[1]}.0);\n          }\n        `,new i.GlslLibRoutine(r)):1===n[1]?(r=`\n          int getOutputCoords() {\n            return 2 * int(TexCoords.x * ${n[0]}.0);\n          }\n        `,new i.GlslLibRoutine(r)):(r=`\n        int getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                 vec2(${n[0]}, ${n[1]}));\n          return 2 * (resTexRC.y * ${n[0]} + resTexRC.x);\n        }\n      `,new i.GlslLibRoutine(r))}getOutputPacked2DCoords(t,e){let n="";if(r.ArrayUtil.arraysEqual(t,e))return n=`\n        ivec2 getOutputCoords() {\n          return 2 * ivec2(TexCoords.xy * vec2(${e[0]}, ${e[1]}));\n        }\n      `,new i.GlslLibRoutine(n);const s=e,o=Math.ceil(t[1]/2);return n=`\n        ivec2 getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${s[0]}, ${s[1]}));\n\n          int index = resTexRC.y * ${s[0]} + resTexRC.x;\n\n          // reverse r and c order for packed texture\n          int r = imod(index, ${o}) * 2;\n          int c = 2 * (index / ${o});\n\n          return ivec2(r, c);\n        }\n      `,new i.GlslLibRoutine(n)}getOutputPacked3DCoords(t,e){const n=[e[0],e[1]],r=Math.ceil(t[2]/2),s=r*Math.ceil(t[1]/2),o=`\n        ivec3 getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${n[0]}, ${n[1]}));\n          int index = resTexRC.y * ${n[0]} + resTexRC.x;\n\n          int b = index / ${s};\n          index -= b * ${s};\n\n          // reverse r and c order for packed texture\n          int r = imod(index, ${r}) * 2;\n          int c = 2 * (index / ${r});\n\n          return ivec3(b, r, c);\n        }\n      `;return new i.GlslLibRoutine(o)}getOutputPackedNDCoords(t,e){const n=[e[0],e[1]],r=Math.ceil(t[t.length-1]/2),s=r*Math.ceil(t[t.length-2]/2);let o=s,a="",u="b, r, c";for(let e=2;e<t.length-1;e++)o*=t[t.length-e-1],a=`\n      int b${e} = index / ${o};\n      index -= b${e} * ${o};\n    `+a,u=`b${e}, `+u;const l=`\n      ivec${t.length} getOutputCoords() {\n        ivec2 resTexRC = ivec2(TexCoords.xy *\n                              vec2(${n[0]}, ${n[1]}));\n        int index = resTexRC.y * ${n[0]} + resTexRC.x;\n\n        ${a}\n\n        int b = index / ${s};\n        index -= b * ${s};\n\n        // reverse r and c order for packed texture\n        int r = imod(index, ${r}) * 2;\n        int c = 2 * (index / ${r});\n\n        return ivec${t.length}(${u});\n      }\n    `;return new i.GlslLibRoutine(l)}getOutputUnpacked1DCoords(t,e){const n=`\n        int getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${e[0]}, ${e[1]}));\n          return resTexRC.y * ${e[0]} + resTexRC.x;\n        }\n      `;return new i.GlslLibRoutine(n)}getOutputUnpacked2DCoords(t,e){const n=`\n        ivec2 getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${e[0]}, ${e[1]}));\n          int index = resTexRC.y * ${e[0]} + resTexRC.x;\n          int r = index / ${t[1]};\n          int c = index - r * ${t[1]};\n          return ivec2(r, c);\n        }\n      `;return new i.GlslLibRoutine(n)}getOutputUnpacked3DCoords(t,e){let n="";const r=t.length;let s=null;r<2&&(s=[]),s=new Array(r-1),s[r-2]=t[r-1];for(let e=r-3;e>=0;--e)s[e]=s[e+1]*t[e+1];const o=["r","c","d"],a=s.map(((t,e)=>`int ${o[e]} = index / ${t}; ${e===s.length-1?`int ${o[e+1]} = index - ${o[e]} * ${t}`:`index -= ${o[e]} * ${t}`};`)).join("");return n=`\n        ivec3 getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${e[0]}, ${e[1]}));\n          int index = resTexRC.y * ${e[0]} + resTexRC.x;\n          ${a}\n          return ivec3(r, c, d);\n        }\n      `,new i.GlslLibRoutine(n)}getOutputUnpacked4DCoords(t,e){let n="";const r=t.length;let s=null;r<2&&(s=[]),s=new Array(r-1),s[r-2]=t[r-1];for(let e=r-3;e>=0;--e)s[e]=s[e+1]*t[e+1];const o=["r","c","d","d2"],a=s.map(((t,e)=>`int ${o[e]} = index / ${t}; ${e===s.length-1?`int ${o[e+1]} = index - ${o[e]} * ${t}`:`index -= ${o[e]} * ${t}`};`)).join("");return n=`\n      ivec4 getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${e[0]}, ${e[1]}));\n          int index = resTexRC.y * ${e[0]} + resTexRC.x;\n          ${a}\n          return ivec4(r, c, d, d2);\n        }\n      `,new i.GlslLibRoutine(n)}getOutputUnpacked5DCoords(t,e){let n="";const r=t.length;let s=null;r<2&&(s=[]),s=new Array(r-1),s[r-2]=t[r-1];for(let e=r-3;e>=0;--e)s[e]=s[e+1]*t[e+1];const o=["r","c","d","d2","d3"],a=s.map(((t,e)=>`int ${o[e]} = index / ${t}; ${e===s.length-1?`int ${o[e+1]} = index - ${o[e]} * ${t}`:`index -= ${o[e]} * ${t}`};`)).join("");return n=`\n      ivec5 getOutputCoords() {\n          ivec2 resTexRC = ivec2(TexCoords.xy *\n                                vec2(${e[0]}, ${e[1]}));\n          int index = resTexRC.y * ${e[0]} + resTexRC.x;\n          ${a}\n          return ivec5(r, c, d, d2, d3);\n        }\n      `,new i.GlslLibRoutine(n)}getOutputUnpacked6DCoords(t,e){let n="";const r=t.length;let s=null;r<2&&(s=[]),s=new Array(r-1),s[r-2]=t[r-1];for(let e=r-3;e>=0;--e)s[e]=s[e+1]*t[e+1];const o=["r","c","d","d2","d3","d4"],a=s.map(((t,e)=>`int ${o[e]} = index / ${t}; ${e===s.length-1?`int ${o[e+1]} = index - ${o[e]} * ${t}`:`index -= ${o[e]} * ${t}`};`)).join("");return n=`\n     ivec6 getOutputCoords() {\n         ivec2 resTexRC = ivec2(TexCoords.xy *\n                               vec2(${e[0]}, ${e[1]}));\n         int index = resTexRC.y * ${e[0]} + resTexRC.x;\n         ${a}\n         return ivec6(r, c, d, d2, d3, d4);\n       }\n     `,new i.GlslLibRoutine(n)}getCommonUtilFuncs(){const t={};let e="uvFromFlat";t[e]=new i.GlslLibRoutine("\n    vec2 uvFromFlat(int texNumR, int texNumC, int index) {\n      int texC = index / texNumR;\n      int texR = index - texC * texNumR;\n      // TODO: swap texR, texC order in following function so row is corresponding to u and column is corresponding to\n      //       v.\n      return (vec2(texR, texC) + halfCR) / vec2(texNumR, texNumC);\n    }\n    "),e="packedUVfrom1D",t[e]=new i.GlslLibRoutine("\n      vec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n        int texelIndex = index / 2;\n        int texR = texelIndex / texNumC;\n        int texC = texelIndex - texR * texNumC;\n        return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n      }\n      "),e="packedUVfrom2D",t[e]=new i.GlslLibRoutine("\n      vec2 packedUVfrom2D(int texNumR, int texNumC, int texelsInLogicalRow, int row, int col) {\n        int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n        int texR = texelIndex / texNumC;\n        int texC = texelIndex - texR * texNumC;\n        return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n      }\n      "),e="packedUVfrom3D",t[e]=new i.GlslLibRoutine("\n      vec2 packedUVfrom3D(int texNumR, int texNumC,\n          int texelsInBatch, int texelsInLogicalRow, int b,\n          int row, int col) {\n        int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n        int texR = index / texNumC;\n        int texC = index - texR * texNumC;\n        return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n      }\n      "),e="sampleTexture";const n=(0,s.getGlsl)(this.context.glContext.version);return t[e]=new i.GlslLibRoutine(`\n        float sampleTexture(sampler2D textureSampler, vec2 uv) {\n            return ${n.texture2D}(textureSampler, uv).r;\n        }`),t}getInputsSamplingSnippets(){const t={},e=this.context.outputTextureLayout;return this.context.programInfo.inputNames.forEach(((n,r)=>{const i=this.context.inputTextureLayouts[r],s=(0,a.generateShaderFuncNameFromInputSamplerName)(n);i.isPacked?t[s]=this.getPackedSamplerFromInput(s,n,i):t[s]=this.getUnpackedSamplerFromInput(s,n,i);const o=(0,a.generateShaderFuncNameFromInputSamplerNameAtOutCoords)(n);i.unpackedShape.length<=e.unpackedShape.length&&(i.isPacked?t[o]=this.getPackedSamplerAtOutputCoords(o,i,e,n):t[o]=this.getUnpackedSamplerAtOutputCoords(o,i,e,n))})),t}getPackedSamplerAtOutputCoords(t,e,n,s){const o=e.unpackedShape,u=n.unpackedShape,l=s,c=(0,a.generateShaderFuncNameFromInputSamplerName)(l),d=o.length,h=u.length,p=r.BroadcastUtil.getBroadcastDims(o,u),f=(0,a.getCoordsDataType)(h),g=h-d;let m;const _=(0,a.getGlChannels)();m=0===d?"":h<2&&p.length>=1?"coords = 0;":p.map((t=>`coords.${_[t+g]} = 0;`)).join("\n");let b="";b=h<2&&d>0?"coords":o.map(((t,e)=>`coords.${_[e+g]}`)).join(", ");let y="return outputValue;";const w=1===r.ShapeUtil.size(o),v=1===r.ShapeUtil.size(u);if(1!==d||w||v){if(w&&!v)y=1===h?"\n          return vec4(outputValue.x, outputValue.x, 0., 0.);\n        ":"\n          return vec4(outputValue.x);\n        ";else if(p.length){const t=d-2,e=d-1;p.indexOf(t)>-1&&p.indexOf(e)>-1?y="return vec4(outputValue.x);":p.indexOf(t)>-1?y="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":p.indexOf(e)>-1&&(y="return vec4(outputValue.xx, outputValue.zz);")}}else y="\n        return vec4(outputValue.xy, outputValue.xy);\n      ";const x=`\n      vec4 ${t}() {\n        ${f} coords = getOutputCoords();\n        \n        int lastDim = coords.${_[h-1]};\n        coords.${_[h-1]} = coords.${_[h-2]};\n        coords.${_[h-2]} = lastDim;\n      \n        ${m}\n        vec4 outputValue = ${c}(${b});\n        ${y}\n      }\n    `;return new i.GlslLibRoutine(x,["coordinates.getOutputCoords"])}getUnpackedSamplerAtOutputCoords(t,e,n,s){const o=[n.width,n.height],u=[e.width,e.height],l=e.unpackedShape.length,c=n.unpackedShape.length,d=e.unpackedShape,h=n.unpackedShape,p=(0,a.generateShaderFuncNameFromInputSamplerName)(s);if(l===c&&r.ArrayUtil.arraysEqual(u,o)){const e=`\n          float ${t}() {\n            return sampleTexture(${s}, TexCoords);\n          }\n        `;return new i.GlslLibRoutine(e,["coordinates.sampleTexture"])}const f=(0,a.getCoordsDataType)(c),g=r.BroadcastUtil.getBroadcastDims(d,h),m=c-l;let _;const b=(0,a.getGlChannels)();_=0===l?"":c<2&&g.length>=1?"coords = 0;":g.map((t=>`coords.${b[t+m]} = 0;`)).join("\n");let y="";y=c<2&&l>0?"coords":e.unpackedShape.map(((t,e)=>`coords.${b[e+m]}`)).join(", ");const w=`\n        float ${t}() {\n          ${f} coords = getOutputCoords();\n          ${_}\n          return ${p}(${y});\n        }\n      `;return new i.GlslLibRoutine(w,["coordinates.getOutputCoords"])}getPackedSamplerFromInput(t,e,n){switch(n.unpackedShape.length){case 0:return this.getPackedSamplerScalar(t,e);case 1:return this.getPackedSampler1D(t,e,n);case 2:return this.getPackedSampler2D(t,e,n);case 3:return this.getPackedSampler3D(t,e,n);default:return this.getPackedSamplerND(t,e,n)}}getUnpackedSamplerFromInput(t,e,n){const r=n.unpackedShape;switch(r.length){case 0:return this.getUnpackedSamplerScalar(t,e,n);case 1:return this.getUnpackedSampler1D(t,e,n);case 2:return this.getUnpackedSampler2D(t,e,n);case 3:return this.getUnpackedSampler3D(t,e,n);case 4:return this.getUnpackedSampler4D(t,e,n);case 5:return this.getUnpackedSampler5D(t,e,n);case 6:return this.getUnpackedSampler6D(t,e,n);default:throw new Error(`Unsupported dimension ${r.length}-D`)}}getPackedSamplerScalar(t,e){const n=`\n          vec4 ${t}() {\n            return ${(0,s.getGlsl)(this.context.glContext.version).texture2D}(${e}, halfCR);\n          }\n        `;return new i.GlslLibRoutine(n)}getPackedSampler1D(t,e,n){const r=[n.width,n.height],o=[r[1],r[0]],a=(0,s.getGlsl)(this.context.glContext.version),u=`vec4 ${t}(int index) {\n      vec2 uv = packedUVfrom1D(\n      ${o[0]}, ${o[1]}, index);\n      return ${a.texture2D}(${e}, uv);\n    }`;return new i.GlslLibRoutine(u,["coordinates.packedUVfrom1D"])}getPackedSampler2D(t,e,n){const o=n.unpackedShape,a=[n.width,n.height],u=(0,s.getGlsl)(this.context.glContext.version),l=a[0],c=a[1];if(null!=a&&r.ArrayUtil.arraysEqual(o,a)){const n=`vec4 ${t}(int row, int col) {\n        vec2 uv = (vec2(col, row) + halfCR) / vec2(${c}.0, ${l}.0);\n        return ${u.texture2D}(${e}, uv);\n      }`;return new i.GlslLibRoutine(n)}const d=a,h=Math.ceil(o[1]/2),p=`vec4 ${t}(int row, int col) {\n      vec2 uv = packedUVfrom2D(${d[1]}, ${d[0]}, ${h}, row, col);\n      return ${u.texture2D}(${e}, uv);\n    }`;return new i.GlslLibRoutine(p,["coordinates.packedUVfrom2D"])}getPackedSampler3D(t,e,n){const r=n.unpackedShape,o=[n.width,n.height],u=[o[0],o[1]],l=(0,s.getGlsl)(this.context.glContext.version);if(1===r[0]){const s=r.slice(1),o=[1,2],u=(0,a.squeezeInputShape)(r,s),l=["b","row","col"],c=JSON.parse(JSON.stringify(n));c.unpackedShape=u;const d=this.getPackedSamplerFromInput(t,e,c),h=`${d.routineBody}\n      vec4 ${t}(int b, int row, int col) {\n        return ${t}(${(0,a.getSqueezedParams)(l,o)});\n      } `;return new i.GlslLibRoutine(h,d.dependencies)}const c=u[0],d=u[1],h=Math.ceil(r[2]/2),p=`vec4 ${t}(int b, int row, int col) {\n      vec2 uv = packedUVfrom3D(\n        ${d}, ${c}, ${h*Math.ceil(r[1]/2)}, ${h}, b, row, col);\n      return ${l.texture2D}(${e}, uv);}`;return new i.GlslLibRoutine(p,["coordinates.packedUVfrom3D"])}getPackedSamplerND(t,e,n){const r=n.unpackedShape,o=r.length,a=[n.width,n.height],u=(0,s.getGlsl)(this.context.glContext.version),l=[a[0],a[1]],c=l[1],d=l[0],h=Math.ceil(r[o-1]/2);let p=h*Math.ceil(r[o-2]/2),f="int b, int row, int col",g=`b * ${p} + (row / 2) * ${h} + (col / 2)`;for(let t=2;t<o-1;t++)f=`int b${t}, `+f,p*=r[o-t-1],g=`b${t} * ${p} + `+g;const m=`vec4 ${t}(${f}) {\n      int index = ${g};\n      int texR = index / ${d};\n      int texC = index - texR * ${d};\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${d}, ${c});\n      return ${u.texture2D}(${e}, uv);\n    }`;return new i.GlslLibRoutine(m)}getUnpackedSamplerScalar(t,e,n){const[r,s]=[n.width,n.height];if(1===r&&1===s){const n=`\n          float ${t}() {\n            return sampleTexture(${e}, halfCR);\n          }\n        `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture"])}const o=`\n        float ${t}() {\n          int offset_${e} = coordsToOffset(TexCoords, ${r}, ${s});\n          vec2 uv = uvFromFlat(${r}, ${s}, offset_${e});\n          return sampleTexture(${e}, uv);\n        }\n      `;return new i.GlslLibRoutine(o,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler1D(t,e,n){const r=n.width,s=n.height;if(1===s&&1===r){const n=`\n        float ${t}(int index) {\n          return sampleTexture(${e}, halfCR);\n        }\n      `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture"])}if(1===s){const n=`\n          float ${t}(int index) {\n            vec2 uv = vec2((float(index) + 0.5) / ${r}.0, 0.5);\n            return sampleTexture(${e}, uv);\n          }\n        `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture"])}if(1===r){const n=`\n          float ${t}(int index) {\n            vec2 uv = vec2(0.5, (float(index) + 0.5) / ${s}.0);\n            return sampleTexture(${e}, uv);\n          }\n        `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture"])}const o=`\n        float ${t}(int index) {\n          vec2 uv = uvFromFlat(${r}, ${s}, index);\n          return sampleTexture(${e}, uv);\n        }\n      `;return new i.GlslLibRoutine(o,["coordinates.uvFromFlat","coordinates.sampleTexture"])}getUnpackedSampler2D(t,e,n){const s=n.unpackedShape,u=[n.height,n.width];if(null!=u&&r.ArrayUtil.arraysEqual(s,u)){const n=`\n          float ${t}(int row, int col) {\n            vec2 uv = (vec2(row, col) + halfCR) / vec2(${u[1]}.0, ${u[0]}.0);\n            return sampleTexture(${e}, uv);\n          }\n        `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture"])}const{newShape:l,keptDims:c}=(0,o.squeezeShape)(s),d=l;if(d.length<s.length){const r=(0,a.squeezeInputShape)(s,d),o=JSON.parse(JSON.stringify(n));o.unpackedShape=r;const u=["col","row"],l=`\n          ${this.getUnpackedSamplerFromInput(t,e,o).routineBody}\n          float ${t}(int row, int col) {\n            return ${t}(${(0,a.getSqueezedParams)(u,c)});\n          }\n        `;return new i.GlslLibRoutine(l,["coordinates.sampleTexture"])}const h=u[1],p=u[0];if(1===p){const n=`\n          float ${t}(int row, int col) {\n            int offset_${e} = coordsToOffset(TexCoords, ${h}, ${p});\n            float index = dot(vec3(row, col, offset_${e}), vec3(${s[1]}, 1, 1));\n            vec2 uv = vec2(0.5, (index + 0.5) / ${h}.0);\n            return sampleTexture(${e}, uv);\n          }\n        `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture","coordinates.coordsToOffset"])}if(1===h){const n=`\n          float ${t}(int row, int col) {\n            int offset_${e} = coordsToOffset(TexCoords, ${h}, ${p});\n            float index = dot(vec3(row, col, offset_${e}), vec3(${s[1]}, 1, 1));\n            vec2 uv = vec2((index + 0.5) / ${p}.0, 0.5);\n            return sampleTexture(${e}, uv);\n          }\n        `;return new i.GlslLibRoutine(n,["coordinates.sampleTexture","coordinates.coordsToOffset"])}const f=`\n        float ${t}(int row, int col) {\n          int index = col * ${s[1]} + row;\n          vec2 uv = uvFromFlat(${h}, ${p}, index);\n          return sampleTexture(${e}, uv);\n        }\n      `;return new i.GlslLibRoutine(f,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler3D(t,e,n){const r=n.unpackedShape,s=r[1]*r[2],u=r[2],{newShape:l,keptDims:c}=(0,o.squeezeShape)(r),d=l;if(d.length<r.length){const s=(0,a.squeezeInputShape)(r,d),o=["batch","col","row"],u=JSON.parse(JSON.stringify(n));u.unpackedShape=s;const l=this.getUnpackedSamplerFromInput(t,e,u),h=c.reverse(),p=`\n          ${l.routineBody}\n          float ${t}(int batch, int row, int col) {\n            return ${t}(${(0,a.getSqueezedParams)(o,h)});\n          }\n        `;return new i.GlslLibRoutine(p,l.dependencies)}const h=`\n          float ${t}(int depth, int row, int col) {\n            // Explicitly use integer operations as dot() only works on floats.\n            int index = depth * ${s} + col * ${u} + row;\n            vec2 uv = uvFromFlat(${n.width}, ${n.height}, index);\n            return sampleTexture(${e}, uv);\n          }\n      `;return new i.GlslLibRoutine(h,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler4D(t,e,n){const r=n.unpackedShape,s=r[3],o=r[2]*s,a=`\n        float ${t}(int row, int col, int depth, int depth2) {\n          int index = row * ${r[1]*o} + col * ${o} +\n              depth2 * ${s} + depth;\n          vec2 uv = uvFromFlat(${n.width}, ${n.height}, index);\n          return sampleTexture(${e}, uv);\n        }\n      `;return new i.GlslLibRoutine(a,["coordinates.uvFromFlat","coordinates.sampleTexture"])}getUnpackedSampler5D(t,e,n){const r=n.unpackedShape,s=r[4],u=r[3]*s,l=r[2]*u,c=r[1]*l,{newShape:d,keptDims:h}=(0,o.squeezeShape)(r);if(d.length<r.length){const s=(0,a.squeezeInputShape)(r,d),o=["row","col","depth","depth2","depth3"],u=JSON.parse(JSON.stringify(n));u.unpackedShape=s;const l=`\n          ${this.getUnpackedSamplerFromInput(t,e,u).routineBody}\n          float ${t}(int row, int col, int depth, int depth2, int depth3) {\n            return ${t}(${(0,a.getSqueezedParams)(o,h)});\n          }\n        `;return new i.GlslLibRoutine(l,["coordinates.sampleTexture","coordinates.uvFromFlat"])}const p=`\n        float ${t}(int row, int col, int depth, int depth2, int depth3) {\n          int index = row * ${c} + col * ${l} + depth * ${u} +\n          depth3 * ${s} + depth2;\n          vec2 uv = uvFromFlat(${n.width}, ${n.height}, index);\n          return sampleTexture(${e}, uv);\n        }\n      `;return new i.GlslLibRoutine(p,["coordinates.sampleTexture","coordinates.uvFromFlat"])}getUnpackedSampler6D(t,e,n){const r=n.unpackedShape,s=r[5],u=r[4]*s,l=r[3]*u,c=r[2]*l,d=r[1]*c,{newShape:h,keptDims:p}=(0,o.squeezeShape)(r);if(h.length<r.length){const s=(0,a.squeezeInputShape)(r,h),o=["row","col","depth","depth2","depth3","depth4"],u=JSON.parse(JSON.stringify(n));u.unpackedShape=s;const l=`\n            ${this.getUnpackedSamplerFromInput(t,e,u).routineBody}\n            float ${t}(int row, int col, int depth,\n              int depth2, int depth3, int depth4) {\n              return ${t}(${(0,a.getSqueezedParams)(o,p)});\n            }\n          `;return new i.GlslLibRoutine(l,["coordinates.sampleTexture","coordinates.uvFromFlat"])}const f=`\n          float ${t}(int row, int col, int depth,\n            int depth2, int depth3, int depth4) {\n            int index = row * ${d} + col * ${c} + depth * ${l} +\n            depth2 * ${u} + depth3 * ${s} + depth4;\n            vec2 uv = uvFromFlat(${n.width}, ${n.height}, index);\n            return sampleTexture(${e}, uv);\n          }\n        `;return new i.GlslLibRoutine(f,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}toVec(){const t=this.context.outputTextureLayout,e=t.shape.length,n=t.strides,r=t.width,s=t.height,o=[];for(let t=0;t<e-1;++t)o.push(`\n        c[${t}] = offset / ${n[t]};`),o.push(`\n        offset -= c[${t}] * ${n[t]};`);o.push(`\n        c[${e-1}] = offset;`);const a=`\n      void toVec(vec2 texCoords, out int c[${e}]) {\n        int offset = coordsToOffset(texCoords, ${r}, ${s});\n        ${o.join("")}\n      }\n      void toVec(int offset, out int c[${e}]) {\n        ${o.join("")}\n      }\n    `;return{toVec:new i.GlslLibRoutine(a,["coordinates.coordsToOffset"])}}valueFrom(){const t={};return this.context.programInfo.inputNames.forEach(((e,n)=>{const r=this.context.inputTextureLayouts[n],s=(r.unpackedShape.length>0?r.unpackedShape:r.shape).length;let o=`_${e}`;t[o]=new i.GlslLibRoutine(this.getValueFromSingle(e,s,r.width,r.height,!1),[`shapeUtils.indicesToOffset${o}`,"coordinates.offsetToCoords","fragcolor.getColorAsFloat"]),o+="_T",t[o]=new i.GlslLibRoutine(this.getValueFromSingle(e,s,r.width,r.height,!0),[`shapeUtils.indicesToOffset${o}`,"coordinates.offsetToCoords","fragcolor.getColorAsFloat"])})),t}getValueFromSingle(t,e,n,r,i){let o=`_${t}`;return i&&(o+="_T"),`\n        float ${o}(int m[${e}]) {\n          int offset = indicesToOffset${o}(m);\n          vec2 coords = offsetToCoords(offset, ${n}, ${r});\n          float value = getColorAsFloat(${(0,s.getGlsl)(this.context.glContext.version).texture2D}(${t}, coords));\n          return value;\n        }\n        `}getPackedValueFrom(t,e,n,r,i){let o=`_${t}_Pack`;return i&&(o+="_T"),`\n        vec4 ${o}(int m[${e}]) {\n          int offset = indicesToOffset_${t}(m);\n          vec2 coords = offsetToCoords(offset, ${n}, ${r});\n          return ${(0,s.getGlsl)(this.context.glContext.version).texture2D}(${t}, coords);\n        }\n        `}}e.CoordsGlslLib=u},8520:(t,e)=>{"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.TopologicalSortGlslRoutines=e.GlslLibRoutineNode=e.GlslLibRoutine=e.GlslLib=e.GlslContext=e.FunctionType=void 0,(n=e.FunctionType||(e.FunctionType={}))[n.ValueBased=0]="ValueBased",n[n.Positional=1]="Positional",e.GlslContext=class{constructor(t,e,n,r){this.glContext=t,this.programInfo=e,this.inputTextureLayouts=n,this.outputTextureLayout=r}},e.GlslLib=class{constructor(t){this.context=t}},e.GlslLibRoutine=class{constructor(t,e){this.routineBody=t,this.dependencies=e}},e.GlslLibRoutineNode=class{constructor(t,e,n){this.name=t,this.dependencies=n||[],e&&(this.routineBody=e)}addDependency(t){t&&this.dependencies.push(t)}},e.TopologicalSortGlslRoutines=class{static returnOrderedNodes(t){if(!t||0===t.length)return[];if(1===t.length)return t;const e=new Set,n=new Set,r=new Array;return this.createOrderedNodes(t,e,n,r),r}static createOrderedNodes(t,e,n,r){for(let i=0;i<t.length;++i)this.dfsTraverse(t[i],e,n,r)}static dfsTraverse(t,e,n,r){if(!t||n.has(t.name))return;if(e.has(t.name))throw new Error("Cyclic dependency detected. Can't topologically sort routines needed for shader.");e.add(t.name);const i=t.dependencies;if(i&&i.length>0)for(let t=0;t<i.length;++t)this.dfsTraverse(i[t],e,n,r);r.push(t),n.add(t.name),e.delete(t.name)}}},7341:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EncodingGlslLib=void 0;const r=n(8520);class i extends r.GlslLib{constructor(t){super(t)}getFunctions(){return Object.assign(Object.assign({},this.encodeFloat32()),this.decodeFloat32())}getCustomTypes(){return{}}encodeFloat32(){return{encode:new r.GlslLibRoutine("highp vec4 encode(highp float f) {\n        return vec4(f, 0.0, 0.0, 0.0);\n      }\n        ")}}decodeFloat32(){return{decode:new r.GlslLibRoutine("highp float decode(highp vec4 rgba) {\n        return rgba.r;\n      }\n        ")}}encodeUint8(){const t=i.isLittleEndian()?"rgba.rgba=rgba.abgr;":"";return{encode:new r.GlslLibRoutine(`\n      highp vec4 encode(highp float f) {\n        highp float F = abs(f);\n        highp float Sign = step(0.0,-f);\n        highp float Exponent = floor(log2(F));\n        highp float Mantissa = (exp2(- Exponent) * F);\n        Exponent = floor(log2(F) + 127.0) + floor(log2(Mantissa));\n        highp vec4 rgba;\n        rgba[0] = 128.0 * Sign  + floor(Exponent*exp2(-1.0));\n        rgba[1] = 128.0 * mod(Exponent,2.0) + mod(floor(Mantissa*128.0),128.0);\n        rgba[2] = floor(mod(floor(Mantissa*exp2(23.0 -8.0)),exp2(8.0)));\n        rgba[3] = floor(exp2(23.0)*mod(Mantissa,exp2(-15.0)));\n        ${t}\n        rgba = rgba / 255.0; // values need to be normalized to [0,1]\n        return rgba;\n    }\n        `)}}decodeUint8(){const t=i.isLittleEndian()?"rgba.rgba=rgba.abgr;":"";return{decode:new r.GlslLibRoutine(`\n        highp float decode(highp vec4 rgba) {\n          rgba = rgba * 255.0; // values need to be de-normalized from [0,1] to [0,255]\n          ${t}\n          highp float Sign = 1.0 - step(128.0,rgba[0])*2.0;\n          highp float Exponent = 2.0 * mod(rgba[0],128.0) + step(128.0,rgba[1]) - 127.0;\n          highp float Mantissa = mod(rgba[1],128.0)*65536.0 + rgba[2]*256.0 +rgba[3] + float(0x800000);\n          highp float Result =  Sign * exp2(Exponent) * (Mantissa * exp2(-23.0 ));\n          return Result;\n      }\n        `)}}static isLittleEndian(){const t=new ArrayBuffer(4),e=new Uint32Array(t),n=new Uint8Array(t);if(e[0]=3735928559,239===n[0])return!0;if(222===n[0])return!1;throw new Error("unknown endianness")}}e.EncodingGlslLib=i},9894:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FragColorGlslLib=void 0;const r=n(8520),i=n(5060);class s extends r.GlslLib{constructor(t){super(t)}getFunctions(){return Object.assign(Object.assign({},this.setFragColor()),this.getColorAsFloat())}getCustomTypes(){return{}}setFragColor(){const t=(0,i.getGlsl)(this.context.glContext.version);return{setFragColor:new r.GlslLibRoutine(`\n        void setFragColor(float value) {\n            ${t.output} = encode(value);\n        }\n        `,["encoding.encode"])}}getColorAsFloat(){return{getColorAsFloat:new r.GlslLibRoutine("\n        float getColorAsFloat(vec4 color) {\n            return decode(color);\n        }\n        ",["encoding.decode"])}}}e.FragColorGlslLib=s},2848:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.replaceInlines=void 0;const n=/@inline[\s\n\r]+(\w+)[\s\n\r]+([0-9a-zA-Z_]+)\s*\(([^)]*)\)\s*{(([^}]|[\n\r])*)}/gm;e.replaceInlines=function(t){const e={};let r;for(;null!==(r=n.exec(t));){const t=r[3].split(",").map((t=>{const e=t.trim().split(" ");return e&&2===e.length?{type:e[0],name:e[1]}:null})).filter((t=>null!==t));e[r[2]]={params:t,body:r[4]}}for(const n in e){const i="(\\w+)?\\s+([_0-9a-zA-Z]+)\\s+=\\s+__FUNC__\\((.*)\\)\\s*;".replace("__FUNC__",n),s=new RegExp(i,"gm");for(;null!==(r=s.exec(t));){const i=r[1],s=r[2],o=r[3].split(","),a=i?`${i} ${s};`:"";let u=e[n].body,l="";e[n].params.forEach(((t,e)=>{t&&(l+=`${t.type} ${t.name} = ${o[e]};\n`)})),u=`${l}\n ${u}`,u=u.replace("return",`${s} = `);const c=`\n      ${a}\n      {\n        ${u}\n      }\n      `;t=t.replace(r[0],c)}}return t.replace(n,"")}},8879:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlslPreprocessor=void 0;const r=n(8520),i=n(2848),s=n(5483),o=n(5060);e.GlslPreprocessor=class{constructor(t,e,n,i){this.libs={},this.glslLibRoutineDependencyGraph={},this.context=new r.GlslContext(t,e,n,i),Object.keys(s.glslRegistry).forEach((t=>{const e=new s.glslRegistry[t](this.context);this.libs[t]=e}));const o=this.glslLibRoutineDependencyGraph;for(const t in this.libs){const e=this.libs[t].getFunctions();for(const n in e){const i=t+"."+n;let s;o[i]?(s=o[i],s.routineBody=e[n].routineBody):(s=new r.GlslLibRoutineNode(i,e[n].routineBody),o[i]=s);const a=e[n].dependencies;if(a)for(let t=0;t<a.length;++t)if(o[a[t]])s.addDependency(o[a[t]]);else{const e=new r.GlslLibRoutineNode(a[t]);o[a[t]]=e,s.addDependency(e)}}}}preprocess(){const t=this.context.programInfo;let e=t.shaderSource;return this.context.programInfo.hasMain||(e=`${e}\n      ${(0,o.getDefaultFragShaderMain)(this.context.glContext.version,this.context.outputTextureLayout.shape.length)}`),e=(0,i.replaceInlines)(e),`${(0,o.getFragShaderPreamble)(this.context.glContext.version)}\n    ${this.getUniforms(t.inputNames,t.variables)}\n    ${this.getImports(e)}\n    ${e}`}getImports(t){const e=this.selectGlslLibRoutinesToBeIncluded(t);if(0===e.length)return"";let n="";for(let t=0;t<e.length;++t){if(!e[t].routineBody)throw new Error(`Missing body for the Glsl Library routine: ${e[t].name}`);n+=e[t].routineBody+"\n"}return n}selectGlslLibRoutinesToBeIncluded(t){const e=[];return Object.keys(this.glslLibRoutineDependencyGraph).forEach((n=>{const r=n.split(".")[1];-1!==t.indexOf(r)&&e.push(this.glslLibRoutineDependencyGraph[n])})),r.TopologicalSortGlslRoutines.returnOrderedNodes(e)}getUniforms(t,e){const n=[];if(t)for(const e of t)n.push(`uniform sampler2D ${e};`);if(e)for(const t of e)n.push(`uniform ${t.type} ${t.name}${t.arrayLength?`[${t.arrayLength}]`:""};`);return n.join("\n")}}},5483:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.glslRegistry=void 0;const r=n(5107),i=n(7341),s=n(9894),o=n(2655),a=n(3891);e.glslRegistry={encoding:i.EncodingGlslLib,fragcolor:s.FragColorGlslLib,vec:a.VecGlslLib,shapeUtils:o.ShapeUtilsGlslLib,coordinates:r.CoordsGlslLib}},2655:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShapeUtilsGlslLib=void 0;const r=n(8520);class i extends r.GlslLib{constructor(t){super(t)}getFunctions(){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},this.bcastIndex()),this.bcastMatmulIndex()),this.offsetToIndices()),this.indicesToOffset()),this.incrementIndices())}getCustomTypes(){return{}}bcastIndex(){const t=this.context.outputTextureLayout.shape.length,e={};return this.context.programInfo.inputNames.forEach(((n,i)=>{const s=this.context.inputTextureLayouts[i].unpackedShape;if(s.length<=t){const i=s.length,o=t-i,a=`bcastIndices_${n}`;let u="";for(let t=0;t<i;++t)u+=`\n          realIndices[${t}] = int( mod(float(bcastedIndices[${o+t}]), ${s[t]}.0) );\n          `;const l=`\n        void ${a} (int bcastedIndices[${t}], out int realIndices[${i}]) {\n          ${u}\n        }\n        `;e[a]=new r.GlslLibRoutine(l)}})),e}bcastMatmulIndex(){const t=this.context.outputTextureLayout.shape.length,e={};return this.context.programInfo.inputNames.forEach(((n,i)=>{const s=this.context.inputTextureLayouts[i].shape;if(!(s.length<2||s.length>t)){const i=s.length,o=t-i,a=`bcastMatmulIndices_${n}`;let u="";for(let t=0;t<i-2;++t)u+=`\n          realIndices[${t}] = int( mod(float(bcastedIndices[${o+t}]), ${s[t]}.0) );\n          `;const l=`\n        void ${a}(int bcastedIndices[${t}], out int realIndices[${i}]) {\n          ${u}\n          realIndices[${i-1}] = bcastedIndices[${t-1}];\n          realIndices[${i-2}] = bcastedIndices[${t-2}];\n        }\n        `;e[a]=new r.GlslLibRoutine(l)}})),e}indicesToOffset(){const t={};return this.context.programInfo.inputNames.forEach(((e,n)=>{const s=this.context.inputTextureLayouts[n].shape,o=this.context.inputTextureLayouts[n].strides,a=s.length;let u=`indicesToOffset_${e}`;t[u]=new r.GlslLibRoutine(i.indexToOffsetSingle(u,a,o)),u=`indicesToOffset_${e}_T`,t[u]=new r.GlslLibRoutine(i.indexToOffsetSingle(u,a,o.slice().reverse()))})),t}static indexToOffsetSingle(t,e,n){let r="";for(let t=e-1;t>=0;--t)r+=`\n        offset += indices[${t}] * ${n[t]};\n        `;return`\n      int ${t}(int indices[${e}]) {\n        int offset = 0;\n        ${r}\n        return offset;\n      }\n      `}offsetToIndices(){const t={};return this.context.programInfo.inputNames.forEach(((e,n)=>{const s=this.context.inputTextureLayouts[n].shape,o=this.context.inputTextureLayouts[n].strides,a=s.length;let u=`offsetToIndices_${e}`;t[u]=new r.GlslLibRoutine(i.offsetToIndicesSingle(u,a,o)),u=`offsetToIndices_${e}_T`,t[u]=new r.GlslLibRoutine(i.offsetToIndicesSingle(u,a,o.slice().reverse()))})),t}static offsetToIndicesSingle(t,e,n){const r=[];for(let t=0;t<e-1;++t)r.push(`\n      indices[${t}] = offset / ${n[t]};`),r.push(`\n        offset -= indices[${t}] * ${n[t]};`);return r.push(`\n      indices[${e-1}] = offset;`),`\n      void ${t}(int offset, out int indices[${e}]) {\n        ${r.join("")}\n      }\n      `}incrementIndices(){const t={};return this.context.programInfo.inputNames.forEach(((e,n)=>{const i=this.context.inputTextureLayouts[n].shape,s=i.length,o=`incrementIndices_${e}`;let a="";for(let t=0;t<s;++t)a+=`\n        shape[${t}] = ${i[t]};`;const u=`\n        void ${o}(int axis, out int indices[${s}]) {\n          int shape[${s}];\n          ${a};\n          for(int i = ${s} -1 ; i >= 0; --i) {\n            if(i > axis) continue;\n            indices[i] += 1;\n            if(indices[i] < shape[i]) {\n              break;\n            }\n            indices[i] = 0;\n          }\n        }\n        `;t[o]=new r.GlslLibRoutine(u)})),t}}e.ShapeUtilsGlslLib=i},5060:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getDefaultFragShaderMain=e.getFragShaderPreamble=e.getVertexShaderSource=e.getGlsl=void 0;const n={version:"",attribute:"attribute",varyingVertex:"varying",varyingFrag:"varying",texture2D:"texture2D",output:"gl_FragColor",outputDeclaration:""},r={version:"#version 300 es",attribute:"in",varyingVertex:"out",varyingFrag:"in",texture2D:"texture",output:"outputColor",outputDeclaration:"out vec4 outputColor;"};function i(t){return 1===t?n:r}e.getGlsl=i,e.getVertexShaderSource=function(t){const e=i(t);return`${e.version}\n      precision highp float;\n      ${e.attribute} vec3 position;\n      ${e.attribute} vec2 textureCoord;\n\n      ${e.varyingVertex} vec2 TexCoords;\n\n      void main()\n      {\n          gl_Position = vec4(position, 1.0);\n          TexCoords = textureCoord;\n      }`},e.getFragShaderPreamble=function(t){const e=i(t);return`${e.version}\n    precision highp float;\n    precision highp int;\n    precision highp sampler2D;\n    ${e.varyingFrag} vec2 TexCoords;\n    ${e.outputDeclaration}\n    const vec2 halfCR = vec2(0.5, 0.5);\n\n    // Custom vector types to handle higher dimenalities.\n    struct ivec5\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n    };\n\n    struct ivec6\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n      int v;\n    };\n\n    int imod(int x, int y) {\n      return x - y * (x / y);\n    }\n\n    `},e.getDefaultFragShaderMain=function(t,e){return`\n  void main() {\n    int indices[${e}];\n    toVec(TexCoords, indices);\n    vec4 result = vec4(process(indices));\n    ${i(t).output} = result;\n  }\n  `}},3891:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VecGlslLib=void 0;const r=n(8520);class i extends r.GlslLib{constructor(t){super(t)}getCustomTypes(){return{}}getFunctions(){return Object.assign(Object.assign(Object.assign(Object.assign({},this.binaryVecFunctions()),this.copyVec()),this.setVecItem()),this.getVecItem())}binaryVecFunctions(){const t=this.context.outputTextureLayout.shape.length,e={add:"+=",sub:"-=",mul:"*=",div:"/="},n={};for(const i in e){const s=`${i}Vec`;let o="";for(let n=0;n<t;++n)o+=`\n          dest[${n}] ${e[i]} src[${n}];\n          `;const a=`\n        void ${s}(int src[${t}], out int dest[${t}]) {\n          ${o}\n        }\n        `;n[s]=new r.GlslLibRoutine(a)}return n}copyVec(){const t=this.context.outputTextureLayout.shape.length;let e="";for(let n=0;n<t;++n)e+=`\n        dest[${n}] = src[${n}];\n        `;const n=`\n      void copyVec(int src[${t}], out int dest[${t}]) {\n        ${e}\n      }\n      `;return{copyVec:new r.GlslLibRoutine(n)}}setVecItem(){const t=this.context.outputTextureLayout.shape.length;let e=`\n        if(index < 0)\n            index =${t} + index;\n        if (index == 0)\n            m[0] = value;\n        `;for(let n=1;n<t-1;++n)e+=`\n        else if (index == ${n})\n            m[${n}] = value;\n            `;e+=`\n        else\n            m[${t-1}] = value;\n        `;const n=`\n      void setVecItem(out int m[${t}], int index, int value) {\n        ${e}\n      }\n        `;return{setVecItem:new r.GlslLibRoutine(n)}}getVecItem(){const t=this.context.outputTextureLayout.shape.length;let e=`\n        if(index < 0)\n            index = ${t} + index;\n        if (index == 0)\n            return m[0];\n      `;for(let n=1;n<t-1;++n)e+=`\n        else if (index == ${n})\n            return m[${n}];\n      `;e+=`\n        else\n            return m[${t-1}];\n        `;const n=`\n      int getVecItem(int m[${t}], int index) {\n        ${e}\n      }\n    `;return{getVecItem:new r.GlslLibRoutine(n)}}}e.VecGlslLib=i},8316:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebGLInferenceHandler=void 0;const r=n(6231),i=n(9162),s=n(2517),o=n(2403),a=n(7019),u=n(8710),l=n(5611),c=n(4057),d=n(2039);e.WebGLInferenceHandler=class{constructor(t){this.session=t,this.packedTextureDataCache=new Map,this.unpackedTextureDataCache=new Map}calculateTextureWidthAndHeight(t,e){return(0,c.calculateTextureWidthAndHeight)(this.session.layoutStrategy,t,e)}executeProgram(t,e){if(e.length<t.inputNames.length)throw new Error(`Input size mustn't be less than ${t.inputNames.length}.`);if(t.inputNames.length!==t.inputTypes.length)throw new Error("input names size does not match input types");const n=[];for(let r=0;r<t.inputNames.length;++r)n[r]=this.getOrCreateTextureData(e[r],t.inputTypes[r]);const r=((t,e)=>{const n=e.map((t=>`${t.unpackedShape.join(",")};${t.width}x${t.height}`)).join("_");let r=t.name;return t.cacheHint&&(r+="["+t.cacheHint+"]"),r+=":"+n,r})(t,n);let i=this.session.programManager.getArtifact(r);const s=i?i.programInfo:"function"==typeof t.get?t.get():t,o=(0,c.createTextureLayoutFromTextureType)(this.session.layoutStrategy,s.output.dims,s.output.textureType),a=this.createTextureData(o,s.output.type);return i||(i=this.session.programManager.build(s,n,a),this.session.programManager.setArtifact(r,i)),this.runProgram(i,n,a),a}run(t,e){return this.executeProgram(t,e).tensor}runProgram(t,e,n){for(let n=0;n<e.length;++n)if(!!e[n].isPacked!=(t.programInfo.inputTypes[n]===d.TextureType.packed))throw new Error(`input[${n}] property packed inconsistent`);if(!!n.isPacked!=(t.programInfo.output.textureType===d.TextureType.packed))throw new Error("output property packed inconsistent");this.session.programManager.run(t,e,n)}getOrCreateTextureData(t,e){let n=this.getTextureData(t.dataId,e===d.TextureType.packed);if(!n&&(n=this.getTextureData(t.dataId,e!==d.TextureType.packed),n))return e===d.TextureType.packed?this.pack(n):this.unpack(n);if(!n){const r=(0,c.createTextureLayoutFromTextureType)(this.session.layoutStrategy,t.dims,e);if(e===d.TextureType.packedLastDimension){const n=1,r=4,i=t.dims;if(4===i.length){const s=[i[0],Math.ceil(i[1]*i[2]*i[3]/r)],o=(0,c.createTextureLayoutFromTextureType)(this.session.layoutStrategy,s,e);let a=t.numberData;if(i[1]*i[2]*i[3]%r!=0){const e=i[0],s=i[1]*i[2]*i[3],o=Math.ceil(s*n/r)*r;a=new Float32Array(e*o);for(let r=0;r<e;++r){const e=r*s,i=r*o+r%n*s;a.set(t.numberData.subarray(e,e+s),i)}}return this.createTextureData(o,t.type,a,t,1)}}if(e===d.TextureType.packed){const e=(0,c.createTextureLayoutFromShape)(this.session.layoutStrategy,t.dims,1,[],{reverseWH:!0}),r=this.createTextureData(e,t.type,t.numberData,t,1);n=this.pack(r)}else n=this.createTextureData(r,t.type,t.numberData,t,1)}return n}createTextureDataFromLayoutBindTensor(t,e,n,r){return this.createTextureData(t,e,n,r,1)}createTextureData(t,e,n,i,s){r.Logger.verbose("InferenceHandler",`Creating TextureData: layout:[${JSON.stringify(t)}]`);const o=this.session.textureManager.createTextureFromLayout(e,t,n,s);return this.createTextureDataFromTexture(t,e,o,i)}reshapeUnpacked(t,e){const n=this.getOrCreateTextureData(t,d.TextureType.unpacked),r={channels:n.channels,height:n.height,width:n.width,shape:0!==e.length?e:[1],strides:s.ShapeUtil.computeStrides(e),unpackedShape:e};return this.createTextureDataFromTexture(r,t.type,n.texture).tensor}reshapePacked(t,e){const n=this.getOrCreateTextureData(t,d.TextureType.packed);if((0,a.isReshapeCheap)(t.dims,e)){const r={channels:n.channels,height:n.height,width:n.width,shape:0!==e.length?e:[1],strides:s.ShapeUtil.computeStrides(e),unpackedShape:e,isPacked:!0};return this.createTextureDataFromTexture(r,t.type,n.texture).tensor}const r=(0,a.processDims3D)(t.dims),i=(0,a.processDims3D)(e),o=this.reshapePacked(t,r),u=this.run((0,a.createPackedReshape3DProgramInfoLoader)(this,o,i),[o]);return this.reshapePacked(u,e)}cast(t,e){const n=this.getOrCreateTextureData(t,d.TextureType.unpacked);return this.createTextureDataFromTexture(n,e,n.texture).tensor}createTextureDataFromTexture(t,e,n,r,s){const o=Object.assign(Object.assign({},t),{tensor:r||new i.Tensor(t.unpackedShape,e,(t=>this.readTexture(o)),(async t=>this.readTextureAsync(o)),void 0,s),texture:n});return this.setTextureData(o.tensor.dataId,o,t.isPacked),o}getTextureData(t,e=!1){return this.session.isInitializer(t)?this.session.getTextureData(t,e):e?this.packedTextureDataCache.get(t):this.unpackedTextureDataCache.get(t)}setTextureData(t,e,n=!1){this.session.isInitializer(t)?this.session.setTextureData(t,e,n):(n?this.packedTextureDataCache:this.unpackedTextureDataCache).set(t,e)}isTextureLayoutCached(t,e=!1){return!!this.getTextureData(t.dataId,e)}dispose(){this.session.textureManager.clearActiveTextures(),this.packedTextureDataCache.forEach((t=>this.session.textureManager.releaseTexture(t))),this.packedTextureDataCache=new Map,this.unpackedTextureDataCache.forEach((t=>this.session.textureManager.releaseTexture(t))),this.unpackedTextureDataCache=new Map}readTexture(t){return t.isPacked?this.readTexture(this.unpack(t)):this.session.backend.glContext.isFloat32DownloadSupported?this.session.textureManager.readTexture(t,t.tensor.type,t.channels):this.session.textureManager.readUint8TextureAsFloat((0,u.encodeAsUint8)(this,t))}async readTextureAsync(t){return t.isPacked?this.readTextureAsync(this.unpack(t)):this.session.backend.glContext.isFloat32DownloadSupported?this.session.textureManager.readTextureAsync(t,t.tensor.type,t.channels):this.session.textureManager.readUint8TextureAsFloat((0,u.encodeAsUint8)(this,t))}pack(t){return this.executeProgram((0,o.createPackProgramInfoLoader)(this,t.tensor),[t.tensor])}unpack(t){return this.executeProgram((0,l.createUnpackProgramInfoLoader)(this,t.tensor),[t.tensor])}}},1640:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),s=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.WEBGL_OP_RESOLVE_RULES=void 0;const o=n(2898),a=s(n(7839)),u=n(4196),l=n(2069),c=n(8138),d=n(9663),h=n(5193),p=n(7992),f=n(1253),g=n(4776),m=n(6572),_=n(3346),b=n(5623),y=n(2870),w=n(2143),v=n(4939),x=n(718),T=n(2268),S=n(8117),A=n(2278),k=n(5524),O=n(5975),E=n(3933),I=n(6558),P=n(5723),D=n(3738),C=s(n(4909)),$=n(8428),M=n(9793);e.WEBGL_OP_RESOLVE_RULES=[["Abs","","6+",C.abs],["Acos","","7+",C.acos],["Add","","7+",a.add],["And","","7+",a.and],["Asin","","7+",C.asin],["Atan","","7+",C.atan],["AveragePool","","7+",w.averagePool,w.parseAveragePoolAttributes],["BatchNormalization","","7+",o.batchNormalization,o.parseBatchNormalizationAttributes],["Cast","","6+",u.cast,u.parseCastAttributes],["Ceil","","6+",C.ceil],["Clip","","6-10",C.clip,C.parseClipAttributes],["Clip","","11+",C.clipV11],["Concat","","4+",l.concat,l.parseConcatAttributes],["Conv","","1+",c.conv,c.parseConvAttributes],["ConvTranspose","","1+",d.convTranspose,d.parseConvTransposeAttributes],["Cos","","7+",C.cos],["Div","","7+",a.div],["Dropout","","7+",C.identity],["DepthToSpace","","1+",h.depthToSpace,h.parseDepthToSpaceAttributes],["Equal","","7+",a.equal],["Elu","","6+",C.elu,C.parseEluAttributes],["Exp","","6+",C.exp],["Flatten","","1+",p.flatten,p.parseFlattenAttributes],["Floor","","6+",C.floor],["FusedConv","com.microsoft","1+",c.conv,c.parseConvAttributes],["Gather","","1+",f.gather,f.parseGatherAttributes],["Gemm","","7-10",g.gemm,g.parseGemmAttributesV7],["Gemm","","11+",g.gemm,g.parseGemmAttributesV11],["GlobalAveragePool","","1+",w.globalAveragePool,w.parseGlobalAveragePoolAttributes],["GlobalMaxPool","","1+",w.globalMaxPool],["Greater","","7+",a.greater],["Identity","","1+",C.identity],["ImageScaler","","1+",m.imageScaler,m.parseImageScalerAttributes],["InstanceNormalization","","6+",_.instanceNormalization,_.parseInstanceNormalizationAttributes],["LeakyRelu","","6+",C.leakyRelu,C.parseLeakyReluAttributes],["Less","","7+",a.less],["Log","","6+",C.log],["MatMul","","1+",b.matMul,b.parseMatMulAttributes],["MaxPool","","1+",w.maxPool,w.parseMaxPoolAttributes],["Mul","","7+",a.mul],["Neg","","6+",C.neg],["Not","","1+",C.not],["Or","","7+",a.or],["Pad","","2-10",y.padV2,y.parsePadAttributesV2],["Pad","","11+",y.padV11,y.parsePadAttributesV11],["Pow","","7+",a.pow],["PRelu","","7+",a.pRelu],["ReduceLogSum","","1+",v.reduceLogSum,v.parseReduceAttributes],["ReduceMax","","1+",v.reduceMax,v.parseReduceAttributes],["ReduceMean","","1+",v.reduceMean,v.parseReduceAttributes],["ReduceMin","","1+",v.reduceMin,v.parseReduceAttributes],["ReduceProd","","1+",v.reduceProd,v.parseReduceAttributes],["ReduceSum","","1-12",v.reduceSum,v.parseReduceAttributes],["ReduceSumSquare","","1+",v.reduceLogSumSquare,v.parseReduceAttributes],["Relu","","6+",C.relu],["Reshape","","5+",x.reshape],["Resize","","10",T.resize,T.parseResizeAttributesV10],["Resize","","11+",T.resize,T.parseResizeAttributesV11],["Shape","","1+",S.shape],["Sigmoid","","6+",C.sigmoid],["Sin","","7+",C.sin],["Slice","","10+",A.sliceV10],["Slice","","1-9",A.slice,A.parseSliceAttributes],["Softmax","","1-12",k.softmax,k.parseSoftmaxAttributes],["Softmax","","13+",k.softmaxV13,k.parseSoftmaxAttributesV13],["Split","","2-12",O.split,O.parseSplitAttributes],["Sqrt","","6+",C.sqrt],["Squeeze","","1-12",E.squeeze,E.parseSqueezeAttributes],["Squeeze","","13+",E.squeezeV13],["Sub","","7+",a.sub],["Sum","","6+",I.sum],["Tan","","7+",C.tan],["Tanh","","6+",C.tanh],["Tile","","6+",P.tile],["Transpose","","1+",D.transpose,D.parseTransposeAttributes],["Upsample","","7-8",M.upsample,M.parseUpsampleAttributesV7],["Upsample","","9",M.upsample,M.parseUpsampleAttributesV9],["Unsqueeze","","1-12",$.unsqueeze,$.parseUnsqueezeAttributes],["Unsqueeze","","13+",$.unsqueezeV13],["Xor","","7+",a.xor]]},2898:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseBatchNormalizationAttributes=e.batchNormalization=void 0;const r=n(246),i=n(5060),s=n(2039),o={name:"BatchNormalization",inputNames:["A","Scale","B","Mean","Variance"],inputTypes:[s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked]};e.batchNormalization=(t,e,n)=>(u(e),[t.run(Object.assign(Object.assign({},o),{cacheHint:n.cacheKey,get:()=>a(t,e,n)}),e)]),e.parseBatchNormalizationAttributes=t=>{const e=t.attributes.getFloat("epsilon",1e-5),n=t.attributes.getFloat("momentum",.9),i=t.attributes.getInt("spatial",1);return(0,r.createAttributeWithCacheKey)({epsilon:e,momentum:n,spatial:i})};const a=(t,e,n)=>{const r=(0,i.getGlsl)(t.session.backend.glContext.version),a=e[0].dims.length,[u,l]=t.calculateTextureWidthAndHeight(e[1].dims,s.TextureType.unpacked),c=`\n  float process(int[${a}] indices) {\n    vec2 position = offsetToCoords(indices[1], ${u}, ${l});\n    float scale = getColorAsFloat(${r.texture2D}(Scale, position));\n    float mean = getColorAsFloat(${r.texture2D}(Mean, position));\n    float variance = getColorAsFloat(${r.texture2D}(Variance, position));\n    float b = getColorAsFloat(${r.texture2D}(B, position));\n\n    return scale * ( (_A(indices) - mean) / sqrt(variance + float(${n.epsilon})) ) + b;\n  }`;return Object.assign(Object.assign({},o),{output:{dims:e[0].dims,type:e[0].type,textureType:s.TextureType.unpacked},shaderSource:c})},u=t=>{if(!t||5!==t.length)throw new Error("BatchNormalization requires 5 inputs.");const e=t[0],n=t[1],r=t[2],i=t[3],s=t[4];if(e.dims.length<3||1!==n.dims.length||1!==r.dims.length||1!==i.dims.length||1!==s.dims.length)throw new Error("invalid input shape.");if(n.dims[0]!==e.dims[1]||r.dims[0]!==e.dims[1]||i.dims[0]!==e.dims[1]||s.dims[0]!==e.dims[1])throw new Error("invalid input shape.");if("float32"!==e.type&&"float64"!==e.type||"float32"!==n.type&&"float64"!==n.type||"float32"!==r.type&&"float64"!==r.type||"float32"!==i.type&&"float64"!==i.type||"float32"!==s.type&&"float64"!==s.type)throw new Error("invalid input tensor types.")}},7839:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.xor=e.sub=e.pRelu=e.pow=e.or=e.mul=e.less=e.greater=e.equal=e.div=e.and=e.add=e.glslPRelu=e.glslPow=e.glslXor=e.glslOr=e.glslAnd=e.glslLess=e.glslGreater=e.glslEqual=e.glslSub=e.glslMul=e.glslDiv=e.glslAdd=void 0;const r=n(2517),i=n(8520),s=n(5060),o=n(2039);function a(){const t="add_";return{body:`\n  float ${t}(float a, float b) {\n    return a + b;\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return v1 + v2;\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function u(){const t="div_";return{body:`\n  float ${t}(float a, float b) {\n    return a / b;\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return v1 / v2;\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function l(){const t="mul_";return{body:`\n  float ${t}(float a, float b) {\n    return a * b;\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return v1 * v2;\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function c(){const t="sub_";return{body:`\n  float ${t}(float a, float b) {\n    return a - b;\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return v1 - v2;\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function d(){const t="equal_";return{body:`\n  float ${t}(float a, float b) {\n    return float(a == b);\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return vec4(equal(v1, v2));\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function h(){const t="greater_";return{body:`\n  float ${t}(float a, float b) {\n    return float(a > b);\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return vec4( v1.r > v2.r ,\n      v1.g > v2.g,\n      v1.b > v2.b,\n      v1.a > v2.a );\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function p(){const t="less_";return{body:`\n  float ${t}(float a, float b) {\n    return float(a < b);\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return vec4( v1.r < v2.r ,\n                v1.g < v2.g,\n                v1.b < v2.b,\n                v1.a < v2.a );\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function f(){const t="and_";return{body:`\n  float ${t}(float a, float b) {\n    return float( bool(a) && bool(b) );\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    bvec4 b1 = bvec4(v1);\n    bvec4 b2 = bvec4(v2);\n    return vec4( b1.r && b2.r ,\n                b1.g && b2.g,\n                b1.b && b2.b,\n                b1.a && b2.a );\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function g(){const t="or_";return{body:`\n  float ${t}(float a, float b) {\n    return float( bool(a) || bool(b) );\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    bvec4 b1 = bvec4(v1);\n    bvec4 b2 = bvec4(v2);\n    return vec4( b1.r || b2.r ,\n                b1.g || b2.g,\n                b1.b || b2.b,\n                b1.a || b2.a );\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function m(){const t="xor_";return{body:`\n  float ${t}(float a, float b) {\n    return float( bool(a) ^^ bool(b) );\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    bvec4 b1 = bvec4(v1);\n    bvec4 b2 = bvec4(v2);\n    return vec4( b1.r ^^ b2.r ,\n                b1.g ^^ b2.g,\n                b1.b ^^ b2.b,\n                b1.a ^^ b2.a );\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}function _(){return function(t){const e=`${t}_`;return{body:`\n  float ${e}(float a, float b) {\n    return ${t}(a, b);\n  }\n  vec4 ${e}(vec4 v1, vec4 v2) {\n    return ${t}(v1, v2);\n  }\n  `,name:e,type:i.FunctionType.ValueBased}}("pow")}function b(){const t="prelu_";return{body:`\n  float ${t}(float a, float b) {\n    return a < 0.0 ? a * b: a;\n  }\n  vec4 ${t}(vec4 v1, vec4 v2) {\n    return vec4(\n      v1.r < 0.0 ? v1.r * v2.r: v1.r,\n      v1.g < 0.0 ? v1.g * v2.g: v1.g,\n      v1.b < 0.0 ? v1.b * v2.b: v1.b,\n      v1.a < 0.0 ? v1.a * v2.a: v1.a\n      );\n  }\n  `,name:t,type:i.FunctionType.ValueBased}}e.glslAdd=a,e.glslDiv=u,e.glslMul=l,e.glslSub=c,e.glslEqual=d,e.glslGreater=h,e.glslLess=p,e.glslAnd=f,e.glslOr=g,e.glslXor=m,e.glslPow=_,e.glslPRelu=b;const y=(t,e,n,r=e[0].type,i)=>{const s=t.session.pack?o.TextureType.packed:o.TextureType.unpacked;return{name:n.name,inputNames:["A","B"],inputTypes:[s,s],cacheHint:i,get:()=>w(t,e,n,r)}},w=(t,e,n,i=e[0].type)=>{const a=t.session.pack?o.TextureType.packed:o.TextureType.unpacked,u=!r.ShapeUtil.areEqual(e[0].dims,e[1].dims);let l=e[0].dims;const c=t.session.pack;if(u){const o=r.BroadcastUtil.calcShape(e[0].dims,e[1].dims,!1);if(!o)throw new Error("Can't perform binary op on the given tensors");l=o;const u=l.length,d=0!==e[0].dims.length?e[0].dims.length:1,h=0!==e[1].dims.length?e[1].dims.length:1,p=0!==e[0].dims.length?"bcastIndices_A(indices, aindices);":"aindices[0] = 0;",f=0!==e[1].dims.length?"bcastIndices_B(indices, bindices);":"bindices[0] = 0;",g=(0,s.getGlsl)(t.session.backend.glContext.version),m=c?`\n      ${n.body}\n      void main() {\n        vec4 a = getAAtOutCoords();\n        vec4 b = getBAtOutCoords();\n        vec4 result = ${n.name}(a, b);\n        ${g.output} = result;\n      }`:`\n      ${n.body}\n      float process(int indices[${u}]) {\n        int aindices[${d}];\n        int bindices[${h}];\n        ${p}\n        ${f}\n        return ${n.name}(_A(aindices), _B(bindices));\n      }`;return{name:n.name,inputNames:["A","B"],inputTypes:[a,a],output:{dims:l,type:i,textureType:a},shaderSource:m,hasMain:c}}const d=(0,s.getGlsl)(t.session.backend.glContext.version),h=`\n    ${n.body}\n    void main() {\n      vec4 v1 = ${d.texture2D}(A, TexCoords);\n      vec4 v2 = ${d.texture2D}(B, TexCoords);\n      vec4 result = ${n.name}(v1, v2);\n      ${d.output} = result;\n    }\n    `;return{name:n.name,inputNames:["A","B"],inputTypes:[a,a],output:{dims:e[0].dims,type:i,textureType:a},shaderSource:h,hasMain:!0}};e.add=(t,e)=>[t.run(y(t,e,a()),e)],e.and=(t,e)=>[t.run(y(t,e,f(),"bool"),e)],e.div=(t,e)=>[t.run(y(t,e,u()),e)],e.equal=(t,e)=>[t.run(y(t,e,d(),"bool"),e)],e.greater=(t,e)=>[t.run(y(t,e,h(),"bool"),e)],e.less=(t,e)=>[t.run(y(t,e,p(),"bool"),e)],e.mul=(t,e)=>[t.run(y(t,e,l()),e)],e.or=(t,e)=>[t.run(y(t,e,g(),"bool"),e)],e.pow=(t,e)=>[t.run(y(t,e,_()),e)],e.pRelu=(t,e)=>[t.run(y(t,e,b()),e)],e.sub=(t,e)=>[t.run(y(t,e,c()),e)],e.xor=(t,e)=>[t.run(y(t,e,m(),"bool"),e)]},4196:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseCastAttributes=e.cast=void 0;const r=n(2517);e.cast=(t,e,n)=>(i(e),[t.cast(e[0],n)]),e.parseCastAttributes=t=>r.ProtoUtil.tensorDataTypeFromProto(t.attributes.getInt("to"));const i=t=>{if(!t||1!==t.length)throw new Error("Cast requires 1 input.");if("string"===t[0].type)throw new Error("Invalid input type.")}},1163:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createPackedConcatProgramInfoLoader=void 0;const r=n(5060),i=n(2039),s=n(9390),o=n(2827);e.createPackedConcatProgramInfoLoader=(t,e,n)=>{const u=(l=e.length,c=n.cacheKey,{name:"Concat (packed)",inputNames:Array.from({length:l},((t,e)=>`X${e}`)),inputTypes:Array(l).fill(i.TextureType.packed),cacheHint:c});var l,c;return Object.assign(Object.assign({},u),{get:()=>((t,e,n,u)=>{const l=n[0].dims.slice();if(u>=l.length||u<-1*l.length)throw new Error("axis specified for concat doesn't match input dimensionality");u<0&&(u=l.length+u);const c=l.slice(0);for(let t=1;t<n.length;t++){const e=n[t].dims.slice();for(let t=0;t<l.length;t++)if(t===u)c[u]+=e[t];else if(l[t]!==e[t])throw new Error("non concat dimensions must match")}const d=c.length,h=(0,o.getChannels)("coords",d),p=(0,s.getCoordsDataType)(d),f=(0,o.unpackFromChannel)(),g=n.map((t=>t.dims)),m=(0,s.getGlChannels)(d),_=new Array(g.length-1);_[0]=g[0][u];for(let t=1;t<_.length;t++)_[t]=_[t-1]+g[t][u];const b=m[u],y=m.slice(-2),w=m.join();let v=`if (${b} < ${_[0]}) {\n        return getChannel(\n            getX0(${w}), vec2(${y.join()}));\n        }`;for(let t=1;t<_.length;t++){const e=_[t-1];v+=`\n            if (${b} < ${_[t]}  && ${b} >= ${_[t-1]}) {\n              return getChannel(\n                getX${t}(${a(m,b,e)}),\n                vec2(${a(y,b,e)}));\n            }`}const x=_.length,T=_[_.length-1];v+=`\n            return getChannel(\n              getX${x}(${a(m,b,T)}),\n              vec2(${a(y,b,T)}));`;const S=(0,r.getGlsl)(t.session.backend.glContext.version),A=`\n          ${f}\n          float getValue(${m.map((t=>"int "+t))}) {\n            ${v}\n          }\n\n          void main() {\n            ${p} coords = getOutputCoords();\n            int lastDim = coords.${m[d-1]};\n            coords.${m[d-1]} = coords.${m[d-2]};\n            coords.${m[d-2]} = lastDim;\n\n            vec4 result = vec4(getValue(${h}), 0., 0., 0.);\n\n            ${h[d-1]} = ${h[d-1]} + 1;\n            if (${h[d-1]} < ${c[d-1]}) {\n              result.g = getValue(${h});\n            }\n\n            ${h[d-2]} = ${h[d-2]} + 1;\n            if (${h[d-2]} < ${c[d-2]}) {\n              result.a = getValue(${h});\n            }\n\n            ${h[d-1]} = ${h[d-1]} - 1;\n            if (${h[d-2]} < ${c[d-2]} &&\n                ${h[d-1]} < ${c[d-1]}) {\n              result.b = getValue(${h});\n            }\n            ${S.output} = result;\n          }\n        `;return Object.assign(Object.assign({},e),{output:{dims:c,type:n[0].type,textureType:i.TextureType.packed},shaderSource:A,hasMain:!0})})(t,u,e,n.axis)})};const a=(t,e,n)=>{const r=t.indexOf(e);return t.map(((t,e)=>e===r?`${t} - ${n}`:t)).join()}},2069:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseConcatAttributes=e.concat=void 0;const r=n(246),i=n(2039),s=n(1163);e.concat=(t,e,n)=>(d(e),t.session.pack&&e[0].dims.length>1?[t.run((0,s.createPackedConcatProgramInfoLoader)(t,e,n),e)]:[t.run(o(t,e,n),e)]);const o=(t,e,n)=>{const r=(s=e.length,o=n.cacheKey,{name:"Concat",inputNames:Array.from({length:s},((t,e)=>`X${e}`)),inputTypes:Array(s).fill(i.TextureType.unpacked),cacheHint:o});var s,o;return Object.assign(Object.assign({},r),{get:()=>((t,e,n,r)=>{const s=n[0].dims.slice();if(r>=s.length||r<-1*s.length)throw new Error("axis specified for concat doesn't match input dimensionality");r<0&&(r=s.length+r);const o=s.slice(0);for(let t=1;t<n.length;t++){const e=n[t].dims.slice();for(let t=0;t<s.length;t++)if(t===r)o[r]+=e[t];else if(s[t]!==e[t])throw new Error("non concat dimensions must match")}const d=o.length,h=new Array(n.length);let p=0;for(let t=0;t<h.length;++t)p+=n[t].dims[r],h[t]=p;let f="";f=n.length<5?a(h):u(h);const g=`\n        ${l(n.length,d)}\n        ${c(h)}\n        ${f}\n        float process(int indices[${d}]) {\n          int textureIndex = getTextureWhereDataResides (indices[${r}]);\n\n          if(textureIndex != 0) {\n            indices[${r}] = indices[${r}] - int(getSizeInConcatAxisValueFromIndex(textureIndex-int(1)));\n          }\n\n          return fetchDataFromCorrectTexture(textureIndex, indices);\n        }`;return Object.assign(Object.assign({},e),{output:{dims:o,type:n[0].type,textureType:i.TextureType.unpacked},shaderSource:g})})(0,r,e,n.axis)})},a=t=>`int getTextureWhereDataResides(int index) {\n      ${t.map(((t,e)=>`if(index<${t}) {return ${e};}\n`)).join("")}\n    }`,u=t=>a(t),l=(t,e)=>{const n=[`float fetchDataFromCorrectTexture(int textureIndex, int indices[${e}]) {`];for(let e=0;e<t;++e)0===e?n.push(`\tif (textureIndex == ${e}) { return _X${e}(indices); }`):e===t-1?n.push(`\telse { return _X${e}(indices); }`):n.push(`\telse if (textureIndex == ${e}) { return _X${e}(indices); }`);return n.push("\t}"),n.join("\n")},c=t=>{const e=["int getSizeInConcatAxisValueFromIndex(int index) {"];for(let n=0;n<t.length;++n)0===n?e.push(`\tif (index == ${n}) { return ${t[n]}; }`):n===t.length-1?e.push(`\telse { return ${t[n]}; }`):e.push(`\telse if (index == ${n}) { return ${t[n]}; }`);return e.push("\t}"),e.join("\n")};e.parseConcatAttributes=t=>(0,r.createAttributeWithCacheKey)({axis:t.attributes.getInt("axis")});const d=t=>{if(!t||t.length<1)throw new Error("too few inputs");const e=t[0].type,n=t[0].dims.length;if("string"===e)throw new Error("string tensor is not supported yet");for(const r of t){if(r.type!==e)throw new Error("input tensors should be one type");if(r.dims.length!==n)throw new Error("input tensors should have the same shape")}}},4770:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createUnpackedGroupedConvProgramInfoLoader=void 0;const r=n(6231),i=n(5060),s=n(2039),o=n(8138),a=n(2823);e.createUnpackedGroupedConvProgramInfoLoader=(t,e,n)=>{const u=(l=e.length>2,c=n.cacheKey,{name:"GroupedConv",inputNames:l?["X","W","Bias"]:["X","W"],inputTypes:l?[s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked]:[s.TextureType.unpacked,s.TextureType.unpacked],cacheHint:c});var l,c;return Object.assign(Object.assign({},u),{get:()=>((t,e,n,u)=>{const l=e.length>2?"value += getBias(output_channel);":"",c=e[0].dims.slice(),d=e[1].dims.slice(),h=d[0]/u.group;r.Logger.verbose("GroupedConv",`autpPad:${u.autoPad}, dilations:${u.dilations}, group:${u.group}, kernelShape:${u.kernelShape}, pads:${u.pads}, strides:${u.strides}`);const p=(0,o.calculateOutputShape)(c,d,u.dilations,u.pads,u.strides),f=(0,i.getGlsl)(t.session.backend.glContext.version),{activationFunction:g,applyActivation:m}=(0,a.getActivationSnippet)(u),_=`\n  const ivec2 strides = ivec2(${u.strides[0]}, ${u.strides[1]});\n  const ivec2 pads = ivec2(${u.pads[0]}, ${u.pads[1]});\n  ${g}\n  void main() {\n    ivec4 coords = getOutputCoords();\n    int batch = coords.x;\n    int output_channel = coords.y;\n    ivec2 xRCCorner = coords.zw * strides - pads;\n    int group_id = output_channel / ${h};\n\n    float value = 0.0;\n    for (int wInChannel = 0; wInChannel < ${d[1]}; wInChannel++) {\n      int input_channel = group_id * ${d[1]} + wInChannel;\n      for (int wHeight = 0; wHeight < ${d[2]}; wHeight++) {\n        int xHeight = xRCCorner.x + wHeight * ${u.dilations[0]};\n\n        if (xHeight < 0 || xHeight >= ${c[2]}) {\n          continue;\n        }\n\n        for (int wWidth = 0; wWidth < ${d[3]}; wWidth++) {\n          int xWidth = xRCCorner.y + wWidth * ${u.dilations[1]};\n          if (xWidth < 0 || xWidth >= ${c[3]}) {\n            continue;\n          }\n\n          float xVal = getX(batch, input_channel, xWidth, xHeight);\n          float wVal = getW(output_channel, wInChannel, wWidth, wHeight);\n          value += xVal*wVal;\n        }\n      }\n    }\n    ${l}\n    ${m}\n    ${f.output} = vec4(value, .0, .0, .0);\n  }\n`;return Object.assign(Object.assign({},n),{output:{dims:p,type:e[0].type,textureType:s.TextureType.unpacked},shaderSource:_,hasMain:!0})})(t,e,u,n)})}},1386:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.conv2DPacked=e.conv2DPackedPointwise=void 0;const r=n(8138),i=n(8555),s=n(708);e.conv2DPackedPointwise=(t,e,n)=>{const i=e[0].dims,o=e[1].dims,a=(0,r.calculateOutputShape)(i,o,n.dilations,n.pads,n.strides),u=t.reshapePacked(e[0],[i[1],i[2]*i[3]]),l=t.reshapePacked(e[1],[o[0],o[1]]),c=e.length>2?[l,u,e[2]]:[l,u],d=t.run((0,s.createPackedMatmulProgramInfoLoader)(t,c,n),c);return t.reshapePacked(d,a)},e.conv2DPacked=(t,e,n)=>{const o=e[0].dims,a=e[1].dims,u=(0,r.calculateOutputShape)(o,a,n.dilations,n.pads,n.strides),l=t.run((0,i.createPackedIm2ColProgramInfoLoader)(t,e[0],e[1],u,n),[e[0]]),c=t.reshapePacked(e[1],[a[0],a[1]*a[2]*a[3]]),d=3===e.length?[c,l,e[2]]:[c,l],h=t.run((0,s.createPackedMatmulProgramInfoLoader)(t,d,n),d);return t.reshapePacked(h,u)}},9663:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseConvTransposeAttributes=e.convTranspose=void 0;const r=n(246),i=n(5060),s=n(2039),o=n(2823),a=(t,e,n,r,i,s)=>(t-1)*e+n+(r-1)*i+1-s,u=(t,e,n,r,i)=>{const s=Math.floor(t/2);"SAME_UPPER"===e?(n[r]=s,n[i]=t-s):"SAME_LOWER"===e&&(n[r]=t-s,n[i]=s)};e.convTranspose=(t,e,n)=>(h(e,n),l(t,e,n));const l=(t,e,n)=>{const r=d(n,e);return[c(t,e,r)]},c=(t,e,n)=>t.run(((t,e,n)=>{const r=(a=e.length>2,u=n.cacheKey,{name:"ConvTranspose",inputNames:a?["X","W","B"]:["X","W"],inputTypes:a?[s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked]:[s.TextureType.unpacked,s.TextureType.unpacked],cacheHint:u});var a,u;return Object.assign(Object.assign({},r),{get:()=>((t,e,n,r)=>{const a=e.length>2?"getB(output_channel)":"0.0",u=e[0].dims,l=e[1].dims,c=l[1],d=l[0]/r.group,h=[e[0].dims[0],e[1].dims[1]*r.group,...r.outputShape],p=(0,i.getGlsl)(t.session.backend.glContext.version),{activationFunction:f,applyActivation:g}=(0,o.getActivationSnippet)(r),m=`\n  const ivec2 strides = ivec2(${r.strides[0]}, ${r.strides[1]});\n  const ivec2 pads = ivec2(${r.pads[0]}, ${r.pads[1]});\n  ${f}\n  void main() {\n    ivec4 coords = getOutputCoords();\n    int batch = coords.x;\n    int output_channel = coords.y;\n\n    ivec2 loc = coords.zw + pads;\n\n    int group_id = output_channel / ${c};\n    int wOutChannel = output_channel - group_id * ${c};\n\n    float value = ${a};\n    for (int inChannelOffset = 0; inChannelOffset < ${d}; inChannelOffset++) {\n      int input_channel = group_id * ${d} + inChannelOffset;\n      for (int wWOff = 0; wWOff < ${l[2]}; wWOff++) {\n        for (int wHOff = 0; wHOff < ${l[3]}; wHOff++) {\n          ivec2 wOff = ivec2(wWOff * ${r.dilations[0]}, wHOff * ${r.dilations[1]});\n          ivec2 wLoc = loc - wOff;\n          ivec2 wLocIn = wLoc / strides;\n          if (\n            wLocIn * strides == wLoc &&\n            wLocIn.x >= 0 && wLocIn.x < ${u[2]} &&\n            wLocIn.y >= 0 && wLocIn.y < ${u[3]}\n          ) {\n            float xVal = getX(batch, input_channel, wLocIn.y, wLocIn.x);\n            float wVal = getW(input_channel, wOutChannel, wHOff, wWOff);\n            value += xVal * wVal;\n          }\n        }\n      }\n    }\n    ${g}\n    ${p.output} = vec4(value, .0, .0, .0);\n  }\n`;return Object.assign(Object.assign({},n),{output:{dims:h,type:e[0].type,textureType:s.TextureType.unpacked},shaderSource:m,hasMain:!0})})(t,e,r,n)})})(t,e,n),e),d=(t,e)=>{const n=t.kernelShape.slice();if(0===t.kernelShape.length)for(let t=2;t<e[1].dims.length;++t)n.push(e[1].dims[t]);const r=t.pads.slice(),i=t.outputShape.slice();((t,e,n,r,i,s,o,l)=>{const c=t.length-2,d=0===l.length;for(let h=0;h<c;++h){const p=d?t[h+2]*s[h]:l[h],f=a(t[h+2],s[h],i[h],e[h],n[h],p);u(f,r,i,h,h+c),d&&l.push(s[h]*(t[h+2]-1)+o[h]+(e[h]-1)*n[h]+1-i[h]-i[h+c])}})(e[0].dims,n,t.dilations,t.autoPad,r,t.strides,t.outputPadding,i);const s=Object.assign({},t);return Object.assign(s,{kernelShape:n,pads:r,outputShape:i,cacheKey:t.cacheKey}),s};e.parseConvTransposeAttributes=t=>{const e=t.attributes,n=(0,o.parseInternalActivationAttributes)(e),i=e.getString("auto_pad","NOTSET"),s=e.getInts("dilations",[1,1]),a=e.getInt("group",1),u=e.getInts("kernel_shape",[]),l=e.getInts("output_padding",[0,0]),c=e.getInts("output_shape",[]),d=e.getInts("pads",[0,0,0,0]),h=e.getInts("strides",[1,1]);return(0,r.createAttributeWithCacheKey)(Object.assign({autoPad:i,dilations:s,group:a,kernelShape:u,outputPadding:l,outputShape:c,pads:d,strides:h},n))};const h=(t,e)=>{if(!t||2!==t.length&&3!==t.length)throw new Error("Conv requires 2 or 3 inputs");if(4!==t[0].dims.length||4!==t[1].dims.length)throw new Error("currently only support 2-dimensional conv");if(t[0].dims[1]!==t[1].dims[0])throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");const n=t[1].dims[1]*e.group;if(3===t.length&&(1!==t[2].dims.length||t[2].dims[0]!==n))throw new Error("invalid bias");const r=t[0].dims.length-2;if(e.dilations.length!==r)throw new Error(`dilations should be ${r}D`);if(e.strides.length!==r)throw new Error(`strides should be ${r}D`);if(e.pads.length!==2*r)throw new Error(`pads should be ${2*r}D`);if(e.outputPadding.length!==r)throw new Error(`output_padding should be ${r}D`);if(0!==e.kernelShape.length&&e.kernelShape.length!==t[1].dims.length-2)throw new Error("invalid kernel shape");if(0!==e.outputShape.length&&e.outputShape.length!==t[0].dims.length-2)throw new Error("invalid output shape");if("float32"!==t[0].type||"float32"!==t[1].type)throw new Error("ConvTranspose input(X,W) should be float tensor");if(3===t.length&&"float32"!==t[2].type)throw new Error("ConvTranspose input(bias) should be float tensor")}},8138:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseConvAttributes=e.conv=e.calculateOutputShape=void 0;const r=n(246),i=n(2517),s=n(4770),o=n(1386),a=n(9828),u=n(2823),l=n(3248),c=n(5623);e.calculateOutputShape=(t,e,n,r,i)=>{const s=t[0],o=t.slice(2),a=o.length,u=e[0],l=e.slice(2).map(((t,e)=>t+(t-1)*(n[e]-1))),c=o.map(((t,e)=>t+r[e]+r[e+a])).map(((t,e)=>Math.floor((t-l[e]+i[e])/i[e])));return[s,u].concat(...c)},e.conv=(t,e,n)=>(g(e,n),d(t,e,n));const d=(t,e,n)=>{const r=f(n,e),i=t.session.pack,a=1===r.kernelShape[0]&&1===r.kernelShape[1];return r.group>1?[t.run((0,s.createUnpackedGroupedConvProgramInfoLoader)(t,e,r),e)]:a&&i?[h(t,e,r)]:i&&4===e[0].dims.length&&1===e[0].dims[0]&&!a?[(0,o.conv2DPacked)(t,e,r)]:[p(t,e,r)]},h=(t,n,r)=>{const i=n[0].dims,s=n[1].dims,o=(0,e.calculateOutputShape)(i,s,r.dilations,r.pads,r.strides),a=t.reshapeUnpacked(n[0],[i[1],i[2]*i[3]]),u=t.reshapeUnpacked(n[1],[s[0],s[1]]),l=n.length>2?[u,a,n[2]]:[u,a],d=t.run((0,c.createMatmulProgramInfoLoader)(l,r),l);return t.reshapeUnpacked(d,o)},p=(t,n,r)=>{const i=n[0].dims,s=n[1].dims,o=(0,e.calculateOutputShape)(i,s,r.dilations,r.pads,r.strides),u=t.run((0,l.createIm2ColProgramInfoLoader)(t,n[0],n[1],o,r),[n[0]]),c=3===n.length?[u,n[1],n[2]]:[u,n[1]];return t.run((0,a.createDotProductProgramInfoLoader)(t,n,o,r),c)},f=(t,e)=>{const n=t.kernelShape.slice();if(0===t.kernelShape.length)for(let t=2;t<e[1].dims.length;++t)n.push(e[1].dims[t]);const r=t.pads.slice();i.PoolConvUtil.adjustPadsBasedOnAutoPad(e[0].dims,t.strides,t.dilations,n,r,t.autoPad);const s=Object.assign({},t);return Object.assign(s,{kernelShape:n,pads:r,cacheKey:t.cacheKey}),s};e.parseConvAttributes=t=>{const e=t.attributes,n=(0,u.parseInternalActivationAttributes)(e),i=e.getString("auto_pad","NOTSET"),s=e.getInts("dilations",[1,1]),o=e.getInt("group",1),a=e.getInts("kernel_shape",[]),l=e.getInts("pads",[0,0,0,0]),c=e.getInts("strides",[1,1]);return(0,r.createAttributeWithCacheKey)(Object.assign({autoPad:i,dilations:s,group:o,kernelShape:a,pads:l,strides:c},n))};const g=(t,e)=>{if(!t||2!==t.length&&3!==t.length)throw new Error("Conv requires 2 or 3 inputs");if(4!==t[0].dims.length||4!==t[1].dims.length)throw new Error("currently only support 2-dimensional conv");if(t[0].dims[1]!==t[1].dims[1]*e.group)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(3===t.length&&(1!==t[2].dims.length||t[1].dims[0]!==t[2].dims[0]))throw new Error("invalid bias");const n=t[0].dims.length-2;if(e.dilations.length!==n)throw new Error(`dilations should be ${n}D`);if(e.strides.length!==n)throw new Error(`strides should be ${n}D`);if(e.pads.length!==2*n)throw new Error(`pads should be ${2*n}D`);if(0!==e.kernelShape.length&&e.kernelShape.length!==t[1].dims.length-2)throw new Error("invalid kernel shape");if("float32"!==t[0].type||"float32"!==t[1].type)throw new Error("Conv input(X,W) should be float tensor");if(3===t.length&&"float32"!==t[2].type)throw new Error("Conv input(bias) should be float tensor")}},5193:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseDepthToSpaceAttributes=e.depthToSpace=void 0;const r=n(3738);e.depthToSpace=(t,e,n)=>{i(e);const s=n.blocksize,o=s*s,a="DCR"===n.mode?[0,3,4,1,5,2]:[0,1,4,2,5,3],u="DCR"===n.mode?[e[0].dims[0],s,s,e[0].dims[1]/o,e[0].dims[2],e[0].dims[3]]:[e[0].dims[0],e[0].dims[1]/o,s,s,e[0].dims[2],e[0].dims[3]],l=t.reshapeUnpacked(e[0],u),c={perm:a,cacheKey:`${a}`},[d]=(0,r.transpose)(t,[l],c),h=[e[0].dims[0],e[0].dims[1]/o,e[0].dims[2]*s,e[0].dims[3]*s];return[t.reshapeUnpacked(d,h)]},e.parseDepthToSpaceAttributes=t=>{const e=t.attributes.getInt("blocksize");if(e<1)throw new Error(`blocksize must be >= 1, but got : ${e} for DepthToSpace`);const n=t.attributes.getString("mode","DCR");if("DCR"!==n&&"CRD"!==n)throw new Error(`unrecognized mode: ${n} for DepthToSpace`);return{mode:n,blocksize:e}};const i=t=>{if(1!==t.length)throw new Error(`DepthToSpace expect 1 inputs, but got ${t.length}`);if("string"===t[0].type||4!==t[0].dims.length)throw new TypeError("DepthToSpace input should be a 4-D numeric tensor")}},9828:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createDotProductProgramInfoLoader=void 0;const r=n(2517),i=n(5060),s=n(2039),o=n(2823),a=n(3248);e.createDotProductProgramInfoLoader=(t,e,n,u)=>{const l=((t,e)=>({name:"ConvDotProduct",inputNames:t?["Im2Col","K","B"]:["Im2Col","K"],inputTypes:t?[s.TextureType.unpacked,s.TextureType.packedLastDimension,s.TextureType.unpacked]:[s.TextureType.unpacked,s.TextureType.packedLastDimension],cacheKey:e.activationCacheKey}))(e.length>2,u);return Object.assign(Object.assign({},l),{get:()=>((t,e,n,u,l)=>{const c=n[0].dims,d=n[1].dims,h=[d[0],Math.ceil(c[1]*d[2]*d[3]/4)],p=(0,a.calculateIm2ColDims)(c,d,u),[f,g]=t.calculateTextureWidthAndHeight(h,s.TextureType.packedLastDimension),m=r.ShapeUtil.computeStrides(p),[_,b]=t.calculateTextureWidthAndHeight(p,s.TextureType.packedLastDimension),y=u.length,w=n.length<3?"0.0":"_B(b)",v=Math.ceil(c[1]*d[2]*d[3]/4),{activationFunction:x,applyActivation:T}=(0,o.getActivationSnippet)(l),S=(0,i.getGlsl)(t.session.backend.glContext.version),A=`\n${x}\nfloat process(int indices[${y}]) {\n  int b[1];\n  b[0] = indices[1];\n  int im2col[4];\n  im2col[0] = indices[0];\n  im2col[1] = indices[2];\n  im2col[2] = indices[3];\n  int im2colOffset = im2col[0] * ${m[0]} + im2col[1] * ${m[1]} + im2col[2] * ${m[2]};\n  int kernelOffset = indices[1] * ${h[1]};\n  float value = ${w};\n  for (int i = 0; i < ${v}; ++i) {\n    vec2 im2colCoords = offsetToCoords(im2colOffset, ${_}, ${b});\n    vec2 kernelCoords = offsetToCoords(kernelOffset, ${f}, ${g});\n    value += dot(${S.texture2D}(Im2Col, im2colCoords), ${S.texture2D}(K, kernelCoords));\n    ++im2colOffset;\n    ++kernelOffset;\n  }\n  ${T}\n  return value;\n}`;return Object.assign(Object.assign({},e),{output:{dims:u,type:n[0].type,textureType:s.TextureType.unpacked},shaderSource:A})})(t,l,e,n,u)})}},7992:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseFlattenAttributes=e.flatten=void 0;const r=n(2517);e.flatten=(t,e,n)=>{i(e,n);const s=r.ShapeUtil.flattenShape(e[0].dims,n);return[t.reshapeUnpacked(e[0],s)]},e.parseFlattenAttributes=t=>t.attributes.getInt("axis",1);const i=(t,e)=>{if(!t||1!==t.length)throw new Error("Flatten requires 1 input.");const n=t[0].dims.length;if(0===n)throw new Error("scalar tensor is not supported.");if(e<-n||e>n)throw new Error("Invalid axis");if("string"===t[0].type)throw new Error("string tensor is not supported.")}},2823:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseInternalActivationAttributes=e.getActivationSnippet=void 0;const r=n(2517),i=n(4909);e.getActivationSnippet=function(t){let e;switch(t.activation){case"Relu":e=(0,i.glslRelu)();break;case"Sigmoid":e=(0,i.glslSigmoid)();break;case"Clip":e=(0,i.glslClip)(t.clipMin,t.clipMax);break;default:return{activationFunction:"",applyActivation:""}}const n=e.name;return{activationFunction:e.body,applyActivation:`value = ${n}_(value);`}},e.parseInternalActivationAttributes=t=>{const e=t.getString("activation","");if("Clip"===e){const[n,i]=t.getFloats("activation_params",[r.MIN_CLIP,r.MAX_CLIP]);return{activation:e,clipMax:i,clipMin:n,activationCacheKey:`${e}:${n},${i}`}}return{activation:e,activationCacheKey:e}}},1253:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseGatherAttributes=e.gather=void 0;const r=n(246),i=n(782),s=n(2517),o=n(2039);e.gather=(t,e,n)=>(l(e,n.axis),[t.run(u(t,e,n),e)]),e.parseGatherAttributes=t=>(0,r.createAttributeWithCacheKey)({axis:t.attributes.getInt("axis",0)});const a={name:"Gather",inputNames:["A","B"],inputTypes:[o.TextureType.unpacked,o.TextureType.unpacked]},u=(t,e,n)=>{const r=Object.assign(Object.assign({},a),{cacheHint:n.cacheKey});return Object.assign(Object.assign({},r),{get:()=>((t,e,n,r)=>{const i=n[0].dims.slice(),a=n[1].dims.slice(),u=new Array(i.length+a.length-1);r=s.ShapeUtil.normalizeAxis(r,i.length);const l=[];for(let t=0;t<u.length;t++)t<r?(u[t]=i[t],l.push(`inputIdx[${t}] = outputIdx[${t}];`)):t<r+a.length?(u[t]=a[t-r],l.push(`indexDataIdx[${t-r}] = outputIdx[${t}];`)):(u[t]=i[t-a.length+1],l.push(`inputIdx[${t-a.length+1}] = outputIdx[${t}];`));const c=`\n      float process(int outputIdx[${u.length||1}]) {\n        int inputIdx[${i.length}];\n        int indexDataIdx[${a.length||1}];\n        indexDataIdx[0] = 0;\n        ${l.join("\n        ")}\n        int idx = int(_B(indexDataIdx));\n        inputIdx[${r}] = idx < 0 ? idx + ${i[r]} : idx;\n        return _A(inputIdx);\n      }`;return Object.assign(Object.assign({},e),{output:{dims:u,type:n[0].type,textureType:o.TextureType.unpacked},shaderSource:c})})(0,r,e,n.axis)})},l=(t,e)=>{if(!t||2!==t.length)throw new Error("Gather requires 2 inputs.");const n=t[0].dims.length;if(n<1)throw new Error("Invalid input shape.");if(e<-n||e>n-1)throw new Error("Invalid axis.");if(-1===i.NUMBER_TYPES.indexOf(t[0].type))throw new Error("Invaid input type.");if("int32"!==t[1].type&&"int16"!==t[1].type)throw new Error("Invaid input type.")}},4776:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseGemmAttributesV11=e.parseGemmAttributesV7=e.gemm=void 0;const r=n(246),i=n(2517),s=n(2039);e.gemm=(t,e,n)=>(l(e,n),[t.run(a(e,n),e)]);const o=(t,e)=>{const n=0!==t.attributes.getInt("transA",0),i=0!==t.attributes.getInt("transB",0),s=t.attributes.getFloat("alpha",1),o=t.attributes.getFloat("beta",1);return(0,r.createAttributeWithCacheKey)({transA:n,transB:i,alpha:s,beta:o,isOptionalC:e})};e.parseGemmAttributesV7=t=>o(t,!1),e.parseGemmAttributesV11=t=>o(t,!0);const a=(t,e)=>{const n={name:"Gemm",inputNames:3===t.length?["A","B","C"]:["A","B"],inputTypes:3===t.length?[s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked]:[s.TextureType.unpacked,s.TextureType.unpacked],key:e.cacheKey};return Object.assign(Object.assign({},n),{get:()=>u(n,t,e)})},u=(t,e,n)=>{const r=e[0].dims.slice(),o=e[1].dims.slice(),[a,u]=i.GemmUtil.getShapeOfGemmResult(r,n.transA,o,n.transB,3===e.length?e[2].dims:void 0),l=[a,u];if(!l)throw new Error("Can't use gemm on the given tensors");let c=r[r.length-1],d="";n.transA&&(c=r[0]),n.transA&&n.transB?d="value += _A_T(a) * _B_T(b);":n.transA&&!n.transB?d="value += _A_T(a) * _B(b);":!n.transA&&n.transB?d="value += _A(a) * _B_T(b);":n.transA||n.transB||(d="value += _A(a) * _B(b);");const h=l.length,p=`\n      float process(int indices[${h}]) {\n          int a[${h}];\n          int b[${h}];\n          ${3===e.length?`int c[${e[2].dims.length}];`:""}\n\n          copyVec(indices, a);\n          copyVec(indices, b);\n          ${3===e.length?"bcastIndices_C(indices, c);":""}\n\n          float value = 0.0;\n          for (int k=0; k<${c}; ++k) {\n              a[${h-1}] = k;\n              b[${h-2}] = k;\n              ${d}\n          }\n\n          value = value * alpha;\n          ${3===e.length?"value += beta * _C(c);":""}\n          return value;\n      }`;return Object.assign(Object.assign({},t),{output:{dims:l,type:e[0].type,textureType:s.TextureType.unpacked},variables:[{name:"alpha",type:"float",data:n.alpha},{name:"beta",type:"float",data:n.beta}],shaderSource:p})},l=(t,e)=>{if(!t)throw new Error("Input is missing");if(e.isOptionalC&&(t.length<2||t.length>3))throw new Error("Invaid input shape.");if(!e.isOptionalC&&3!==t.length)throw new Error("Gemm requires 3 inputs");if(3===t.length&&1!==t[2].dims.length&&2!==t[2].dims.length)throw new Error("Invalid input shape of C");if("float32"!==t[0].type&&"float64"!==t[0].type||"float32"!==t[1].type&&"float64"!==t[1].type||3===t.length&&"float32"!==t[2].type&&"float64"!==t[2].type)throw new Error("Invalid input type.");if(t[0].type!==t[1].type||3===t.length&&t[0].type!==t[2].type)throw new Error("Input types are mismatched")}},8555:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createPackedIm2ColProgramInfoLoader=void 0;const r=n(5060),i=n(2039),s=n(2827);e.createPackedIm2ColProgramInfoLoader=(t,e,n,o,a)=>{const u=(l=a.cacheKey,{name:"Im2Col (packed)",inputNames:["A"],inputTypes:[i.TextureType.packed],cacheHint:l});var l;return Object.assign(Object.assign({},u),{get:()=>((t,e,n,o,a,u)=>{const l=n.dims,c=o.dims,d=a.length,h=[c[1]*c[2]*c[3],a[2]*a[3]],p=c[2]*c[3],f=(0,s.unpackFromChannel)(),g=(0,r.getGlsl)(t.session.backend.glContext.version);let m="";for(let t=0;t<=1;t++)for(let e=0;e<=1;e++)m+=`\n            blockIndex = rc.x + ${e};\n            pos = rc.y + ${t};\n\n            if(blockIndex < ${h[1]} && pos < ${h[0]}) {\n              offsetY = int(blockIndex / (${a[d-1]})) * ${u.strides[0]} -\n                ${u.pads[0]};\n              d0 = offsetY + ${u.dilations[0]} * (imod(pos, ${p}) / ${c[2]});\n\n              if(d0 < ${l[2]} && d0 >= 0) {\n                offsetX = imod(blockIndex, ${a[d-1]}) * ${u.strides[1]} -\n                  ${u.pads[1]};\n                d1 = offsetX + ${u.dilations[1]} * imod(imod(pos, ${p}), ${c[2]});\n\n                if(d1 < ${l[3]} && d1 >= 0) {\n\n                  ch = int(float(pos)/ ${p}.);\n                    innerDims = vec2(d0, d1);\n                    result[${2*t+e}] = getChannel(\n                      getA(0, ch, int(innerDims.x),\n                      int(innerDims.y)), innerDims);\n                }\n              }\n            }\n\n          `;const _=`\n      ${f}\n\n      void main() {\n        ivec2 rc = getOutputCoords();\n          vec4 result = vec4(0.0);\n          int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n          vec2 innerDims;\n          ${m}\n          ${g.output} = result;\n      }\n            `;return Object.assign(Object.assign({},e),{output:{dims:h,type:n.type,textureType:i.TextureType.packed},shaderSource:_,hasMain:!0})})(t,u,e,n,o,a)})}},3248:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.calculateIm2ColDims=e.createIm2ColProgramInfoLoader=void 0;const r=n(2039);e.createIm2ColProgramInfoLoader=(t,n,i,s,o)=>{const a=(u=o.cacheKey,{name:"Im2Col",inputNames:["X"],inputTypes:[r.TextureType.unpacked],cacheHint:u});var u;return Object.assign(Object.assign({},a),{get:()=>((t,n,i,s,o,a)=>{const u=i.dims,l=s.dims,c=o.length,d=(0,e.calculateIm2ColDims)(u,l,o,4),h=`\n        const int XC = ${u[1]};\n        const int XH = ${u[2]};\n        const int XW = ${u[3]};\n        const int KH = ${a.kernelShape[0]};\n        const int KW = ${a.kernelShape[1]};\n        const int dilationH = ${a.dilations[0]};\n        const int dilationW = ${a.dilations[1]};\n        const int strideH = ${a.strides[0]};\n        const int strideW = ${a.strides[1]};\n        const int padH = ${a.pads[0]};\n        const int padW = ${a.pads[1]};\n        const int KHKW = KH*KW;\n        const int XCKHKW = XC * KHKW;\n        const int outputChannels = 4;\n        vec4 process(int indices[${c}]) {\n          int b  = indices[0]; // batch size\n          int oh = indices[1] * strideH - padH; //output height\n          int ow = indices[2] * strideW - padW; //output width\n          int p = indices[3] * outputChannels; //patch\n          vec4 value = vec4(0.0);\n          for(int i=0; i < outputChannels; ++i) {\n            if(p < XCKHKW) {\n              int patchC = p / KHKW;\n              int patchH = (p - patchC*KHKW) / KW;\n              int patchW = (p - patchC*KHKW) - patchH * KW;\n              int xh2 = oh + patchH * dilationH;\n              int xw2 = ow + patchW * dilationW;\n              int x[${u.length}];\n              x[0] = b;\n              x[1] = patchC;\n              x[2] = xh2;\n              x[3] = xw2;\n              if(xh2 >= 0 &&\n                  xh2 < XH &&\n                  xw2 >= 0 &&\n                  xw2 < XW) {\n                value[i] = _X(x);\n              }\n            }\n            ++p;\n          }\n          return value;\n        }\n        `;return Object.assign(Object.assign({},n),{output:{dims:d,type:i.type,textureType:r.TextureType.packedLastDimension},shaderSource:h})})(0,a,n,i,s,o)})},e.calculateIm2ColDims=(t,e,n,r=4)=>[n[0],n[2],n[3],Math.ceil(t[1]*e[2]*e[3]/r)]},6572:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseImageScalerAttributes=e.imageScaler=void 0;const r=n(246),i=n(2039);e.imageScaler=(t,e,n)=>(u(e),[t.run(o(t,e,n),e)]),e.parseImageScalerAttributes=t=>{const e=t.attributes.getFloat("scale"),n=t.attributes.getFloats("bias");return(0,r.createAttributeWithCacheKey)({scale:e,bias:n})};const s={name:"ImageScaler",inputNames:["X"],inputTypes:[i.TextureType.unpacked]},o=(t,e,n)=>{const r=Object.assign(Object.assign({},s),{cacheHint:n.cacheKey});return Object.assign(Object.assign({},r),{get:()=>((t,e,n,r)=>{const s=n[0].dims.slice(),o=s.length,u=`\n      ${a(r.bias.length)}\n      float process(int indices[${o}]) {\n        return _X(indices) * scale + getBias(bias, indices[1]);\n      }`;return Object.assign(Object.assign({},e),{output:{dims:s,type:n[0].type,textureType:i.TextureType.unpacked},variables:[{name:"bias",type:"float",arrayLength:r.bias.length,data:r.bias},{name:"scale",type:"float",data:r.scale}],shaderSource:u})})(0,r,e,n)})},a=t=>{const e=[`float getBias(float bias[${t}], int channel) {`];for(let n=0;n<t;++n)0===n?e.push(`\tif (channel == ${n}) { return bias[${n}]; }`):n===t-1?e.push(`\telse { return bias[${n}]; }`):e.push(`\telse if (channel == ${n}) { return bias[${n}]; }`);return e.push("\t}"),e.join("\n")},u=t=>{if(!t||1!==t.length)throw new Error("ImageScaler requires 1 input.");if(4!==t[0].dims.length)throw new Error("Invalid input shape.");if("float32"!==t[0].type&&"float64"!==t[0].type)throw new Error("Invalid input type.")}},3346:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseInstanceNormalizationAttributes=e.instanceNormalization=void 0;const r=n(5060),i=n(2039);e.instanceNormalization=(t,e,n)=>{l(e);const r=t.run(o(e[0]),e);return[t.run(u(t,e[0],n,r.dims),[e[0],r,e[1],e[2]])]},e.parseInstanceNormalizationAttributes=t=>t.attributes.getFloat("epsilon",1e-5);const s={name:"InstanceNormalization_MeanAndVariance",inputNames:["X"],inputTypes:[i.TextureType.unpacked]},o=t=>Object.assign(Object.assign({},s),{get:()=>((t,e)=>{const n=e.dims.slice(),r=n[1],s=n[2]*n[3],o=[n[0],r],a=`\n      vec4 process(int[2] indices) {\n        vec4 v = vec4(0.0);\n        int a[4];\n        a[0] = indices[0];\n        a[1] = indices[1];\n        float temp = 0.0;\n        for(int a2=0; a2<${n[2]}; a2++) {\n          a[2] = a2;\n          for(int a3=0; a3<${n[3]}; a3++) {\n            a[3] = a3;\n            float x = _X(a);\n            temp += x;\n          }\n        }\n        float mean = temp / float(${s});\n        temp = 0.0;\n        for(int a2=0; a2<${n[2]}; a2++) {\n          a[2] = a2;\n          for(int a3=0; a3<${n[3]}; a3++) {\n            a[3] = a3;\n            float x = _X(a);\n            temp += (x - mean) * (x - mean);\n          }\n        }\n        v.r = mean;\n        v.g = temp / float(${s});\n\n        return v;\n      }`;return Object.assign(Object.assign({},t),{output:{dims:o,type:e.type,textureType:i.TextureType.packedLastDimension},shaderSource:a})})(s,t)}),a={name:"InstanceNormalization_ComputeOutput",inputNames:["X","MeanAndVariance","Scale","B"],inputTypes:[i.TextureType.unpacked,i.TextureType.packedLastDimension,i.TextureType.unpacked,i.TextureType.unpacked]},u=(t,e,n,s)=>{const o=Object.assign(Object.assign({},a),{cacheHint:`${n}`});return Object.assign(Object.assign({},o),{get:()=>((t,e,n,s,o)=>{const a=(0,r.getGlsl)(t.session.backend.glContext.version),[u,l]=t.calculateTextureWidthAndHeight(o,i.TextureType.packedLastDimension),[c,d]=[u/4,l],h=`\n      vec4 get_MeanAndVariance(int[2] mv) {\n        int offset = indicesToOffset_MeanAndVariance(mv);\n        vec2 coords = offsetToCoords(offset, ${c}, ${d});\n        return ${a.texture2D}(MeanAndVariance, coords);\n      }\n\n      float process(int[4] indices) {\n        int mv[2];\n        mv[0] = indices[0];\n        mv[1] = indices[1];\n        vec4 mean_and_variance = get_MeanAndVariance(mv);\n        float mean = mean_and_variance.r;\n        float variance = mean_and_variance.g;\n\n        int sb[1];\n        sb[0] = indices[1];\n        float scale = _Scale(sb);\n        float b = _B(sb);\n\n        return scale * (_X(indices) - mean) / sqrt(variance + epsilon) + b;\n      }`;return Object.assign(Object.assign({},e),{output:{dims:n.dims,type:n.type,textureType:i.TextureType.unpacked},variables:[{name:"epsilon",type:"float",data:s}],shaderSource:h})})(t,o,e,n,s)})},l=t=>{if(!t||3!==t.length)throw new Error("InstanceNormalization requires 3 inputs.");const e=t[0],n=t[1],r=t[2];if(e.dims.length<3||1!==n.dims.length||1!==r.dims.length)throw new Error("Invalid input shape.");if(n.dims[0]!==e.dims[1]||r.dims[0]!==e.dims[1])throw new Error("Input shapes are mismatched.");if("float32"!==e.type&&"float64"!==e.type||"float32"!==n.type&&"float64"!==n.type||"float32"!==r.type&&"float64"!==r.type)throw new Error("Invalid input type.");if(4!==t[0].dims.length)throw new Error("Only support 4-D input shape.")}},708:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createPackedMatmulProgramInfoLoader=void 0;const r=n(2517),i=n(5060),s=n(2039),o=n(9390),a=n(2823),u=n(5623);e.createPackedMatmulProgramInfoLoader=(t,e,n)=>{const l=(c=e.length>2,d=n.activationCacheKey,{name:"MatMul (packed)",inputNames:c?["A","B","Bias"]:["A","B"],inputTypes:c?[s.TextureType.packed,s.TextureType.packed,s.TextureType.packed]:[s.TextureType.packed,s.TextureType.packed],cacheHint:d});var c,d;return Object.assign(Object.assign({},l),{get:()=>((t,e,n,l)=>{const c=n.length>2,d=c?"value += getBiasForMatmul();":"",h=n[0].dims,p=n[1].dims,f=r.BroadcastUtil.calcShape(h,p,!0),g=!r.ShapeUtil.areEqual(n[0].dims,n[1].dims);if(!f)throw new Error("Can't use matmul on the given tensors");const m=h[h.length-1],_=Math.ceil(m/2),b=h.length,y=p.length,w=(0,i.getGlsl)(t.session.backend.glContext.version),v=(0,o.getCoordsDataType)(f.length),x=f.length,T=(0,o.getGlChannels)(),{activationFunction:S,applyActivation:A}=(0,a.getActivationSnippet)(l),k=c?`${(0,u.getBiasForMatmul)(v,T,n[2].dims,f,!0)}`:"",O=g?`${function(t,e,n,i){let s=[],o=[];const a=n[0].dims,u=n[1].dims,l=a.length,c=u.length,d=i.length,h=d-l,p=d-c;s=a.map(((t,n)=>`coords.${e[n+h]}`)),s[l-1]="i*2",s.join(", "),o=u.map(((t,n)=>`coords.${e[n+p]}`)),o[c-2]="i*2",o.join(", ");const f=r.BroadcastUtil.getBroadcastDims(a,i),g=r.BroadcastUtil.getBroadcastDims(u,i),m=f.map((t=>`coords.${e[t+h]} = 0;`)).join("\n"),_=g.map((t=>`coords.${e[t+p]} = 0;`)).join("\n"),b=`int lastDim = coords.${e[d-1]};\n  coords.${e[d-1]} = coords.${e[d-2]};\n  coords.${e[d-2]} = lastDim;`;return`\nvec4 getAAtOutCoordsMatmul(int i) {\n  ${t} coords = getOutputCoords();\n  ${b}\n  ${m}\n  vec4 outputValue = getA(${s});\n  return outputValue;\n}\n\nvec4 getBAtOutCoordsMatmul(int i) {\n  ${t} coords = getOutputCoords();\n  ${b}\n  ${_}\n  vec4 outputValue = getB(${o});\n  return outputValue;\n}`}(v,T,n,f)}`:"",E=g?"getAAtOutCoordsMatmul(i)":`getA(${function(t,e){let n="";for(let r=0;r<e-2;r++)n+=`rc.${t[r]}, `;return n+=`rc.${t[e-2]}, i*2`,n}(T,b)})`,I=g?"getBAtOutCoordsMatmul(i)":`getB(${function(t,e){let n="";for(let r=0;r<e-2;r++)n+=`rc.${t[r]}, `;return n+=`i*2, rc.${t[e-1]}`,n}(T,y)})`,P=`\n            ${O}\n            ${k}\n            ${S}\n            void main() {\n              ${g?"":`${v} rc =\n          getOutputCoords(); int lastDim = rc.${T[x-1]}; rc.${T[x-1]} =\n          rc.${T[x-2]}; rc.${T[x-2]} = lastDim;\n      `}\n\n              vec4 value = vec4(0);\n              for (int i = 0; i < ${_}; i++) {\n                vec4 a = ${E};\n                vec4 b = ${I};\n\n                value += (a.rrbb * b.rgrg);\n                value += (a.ggaa * b.baba);\n              }\n              ${d}\n              ${A}\n              ${w.output} = value;\n            }`;return Object.assign(Object.assign({},e),{output:{dims:f,type:n[0].type,textureType:s.TextureType.packed},shaderSource:P,hasMain:!0})})(t,l,e,n)})}},5623:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getBiasForMatmul=e.createMatmulProgramInfoLoader=e.parseMatMulAttributes=e.matMul=void 0;const r=n(2517),i=n(2039),s=n(9390),o=n(2823),a=n(708);function u(t,e){const n=(a=t.length>2,u=e.activationCacheKey,{name:"MatMul",inputNames:a?["A","B","Bias"]:["A","B"],inputTypes:a?[i.TextureType.unpacked,i.TextureType.unpacked,i.TextureType.unpacked]:[i.TextureType.unpacked,i.TextureType.unpacked],cacheHint:u});var a,u;return Object.assign(Object.assign({},n),{get:()=>function(t,e,n){const a=e[0].dims,u=e[1].dims,l=r.BroadcastUtil.calcShape(a,u,!0);if(!l)throw new Error("Can't use matmul on the given tensors");const d=(0,s.getCoordsDataType)(l.length),h=(0,s.getGlChannels)(),{activationFunction:p,applyActivation:f}=(0,o.getActivationSnippet)(n),g=e.length>2,m=g?"value += getBiasForMatmul();":"",_=g?`${c(d,h,e[2].dims,l,!1)}`:"",b=l.length,y=a.length,w=u.length,v=`\n    ${p}\n    ${_}\n    float process(int indices[${b}]) {\n        int a[${y}];\n        int b[${w}];\n        bcastMatmulIndices_A(indices, a);\n        bcastMatmulIndices_B(indices, b);\n\n        float value;\n        for (int k=0; k<${a[a.length-1]}; ++k) {\n            a[${y-1}] = k;\n            b[${w-2}] = k;\n            value += _A(a) * _B(b);\n        }\n        ${m}\n        ${f}\n        return value;\n    }`;return Object.assign(Object.assign({},t),{output:{dims:l,type:e[0].type,textureType:i.TextureType.unpacked},shaderSource:v})}(n,t,e)})}e.matMul=(t,e,n)=>(l(e),t.session.pack?[t.run((0,a.createPackedMatmulProgramInfoLoader)(t,e,n),e)]:[t.run(u(e,n),e)]),e.parseMatMulAttributes=t=>(0,o.parseInternalActivationAttributes)(t.attributes),e.createMatmulProgramInfoLoader=u;const l=t=>{if(!t||2!==t.length)throw new Error("MatMul requires 2 inputs.");if(t[0].dims[t[0].dims.length-1]!==t[1].dims[t[1].dims.length-2])throw new Error("shared dimension does not match.");if("float32"!==t[0].type&&"float64"!==t[0].type||"float32"!==t[1].type&&"float64"!==t[1].type)throw new Error("inputs should be float type");if(t[0].type!==t[1].type)throw new Error("inputs types should match")};function c(t,e,n,i,s){let o="";const a=n.length,u=i.length,l=u-a;o=u<2&&a>0?"coords":n.map(((t,n)=>`coords.${e[n+l]}`)).join(", ");const c=r.BroadcastUtil.getBroadcastDims(n,i).map((t=>`coords.${e[t+l]} = 0;`)).join("\n");let d="vec4(outputValue.xx, outputValue.yy)";return 1===r.ShapeUtil.size(n)&&(d="vec4(outputValue.x)"),s?`\nvec4 getBiasForMatmul() {\n  ${t} coords = getOutputCoords();\n  ${c}\n  vec4 outputValue = getBias(${o});\n  return ${d};\n}`:`\nfloat getBiasForMatmul() {\n  ${t} coords = getOutputCoords();\n  ${c}\n  return getBias(coords.x);\n}`}e.getBiasForMatmul=c},2403:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createPackProgramInfoLoader=void 0;const r=n(5060),i=n(2039),s=n(9390),o=n(2827),a={name:"pack",inputNames:["A"],inputTypes:[i.TextureType.unpackedReversed]};e.createPackProgramInfoLoader=(t,e)=>Object.assign(Object.assign({},a),{get:()=>((t,e)=>{const n=(0,r.getGlsl)(t.session.backend.glContext.version),u=e.dims,l=u.length,c=e.dims.length,d=(0,s.getCoordsDataType)(c),h=(0,o.getChannels)("rc",c),p=(f=c,g=h,m=u[u.length-2],_=u[u.length-1],0===f||1===f?"":`\n    int r = ${g[f-2]};\n    int c = ${g[f-1]};\n    int rp1 = ${g[f-2]} + 1;\n    int cp1 = ${g[f-1]} + 1;\n    bool rEdge = rp1 >= ${_};\n    bool cEdge = cp1 >= ${m};\n    `);var f,g,m,_;let b;b=0===l?[1,1]:1===l?[u[0],1]:[u[c-1],u[c-2]];const y=function(t,e,n){if(0===t)return"false";if(1===t)return`rc > ${e[0]}`;let r="";for(let i=t-2;i<t;i++)r+=`${n[i]} >= ${e[i-t+2]}`,i<t-1&&(r+="||");return r}(c,b,h),w=function(t,e){const n=t.length;if(0===n)return"getA(), 0, 0, 0";if(1===n)return`getA(rc),\n            rc + 1 >= ${t[0]} ? 0. : getA(rc + 1),\n            0, 0`;let r="";if(n>2)for(let t=0;t<n-2;++t)r+=`${e[t]},`;return`getA(${r}r, c),\n          rEdge ? 0. : getA(${r}rp1, c),\n          cEdge ? 0. : getA(${r}r, cp1),\n          rEdge || cEdge ? 0. : getA(${r}rp1, cp1)`}(u,h),v=`\n        void main() {\n          ${d} rc = getOutputCoords();\n\n          if(${y}) {\n            ${n.output} = vec4(0);\n          } else {\n            ${p}\n\n            ${n.output} = vec4(${w});\n          }\n        }\n      `;return Object.assign(Object.assign({},a),{hasMain:!0,output:{dims:e.dims,type:e.type,textureType:i.TextureType.packed},shaderSource:v})})(t,e)})},2827:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.unpackFromChannel=e.getChannels=e.getVecChannels=void 0;const r=n(9390);function i(t,e){return(0,r.getGlChannels)(e).map((e=>`${t}.${e}`))}e.getVecChannels=i,e.getChannels=function(t,e){return 1===e?[t]:i(t,e)},e.unpackFromChannel=function(){return"\n    float getChannel(vec4 frag, int dim) {\n      int modCoord = imod(dim, 2);\n      return modCoord == 0 ? frag.r : frag.g;\n    }\n\n    float getChannel(vec4 frag, vec2 innerDims) {\n      vec2 modCoord = mod(innerDims, 2.);\n      return modCoord.x == 0. ?\n        (modCoord.y == 0. ? frag.r : frag.g) :\n        (modCoord.y == 0. ? frag.b : frag.a);\n    }\n  "}},2870:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parsePadAttributesV11=e.padV11=e.parsePadAttributesV2=e.padV2=void 0;const r=n(246),i=n(2517),s=n(5060),o=n(2039),a={name:"Pad",inputNames:["A"],inputTypes:[o.TextureType.unpacked]};e.padV2=(t,e,n)=>(c(e),[t.run(Object.assign(Object.assign({},a),{cacheHint:n.cacheKey,get:()=>l(t,e[0],n)}),e)]),e.parsePadAttributesV2=t=>{const e=t.attributes.getString("mode","constant"),n=t.attributes.getFloat("value",0),i=t.attributes.getInts("pads");return(0,r.createAttributeWithCacheKey)({mode:e,value:n,pads:i})},e.padV11=(t,n,r)=>{d(n);const i=u(t,n,r);return(0,e.padV2)(t,[n[0]],i)},e.parsePadAttributesV11=t=>t.attributes.getString("mode","constant");const u=(t,e,n)=>{if(!t.session.isInitializer(e[1].dataId)||e.length>=3&&!t.session.isInitializer(e[2].dataId))throw new Error("dynamic pad attributes are not allowed");const i=Array.from(e[1].integerData),s=e.length>=3?e[2].floatData[0]:0;return(0,r.createAttributeWithCacheKey)({mode:n,pads:i,value:s})},l=(t,e,n)=>{const r=i.ShapeUtil.padShape(e.dims.slice(),n.pads),s=r.length,a=`\n      ${h(t,e,n)}\n      float process(int[${s}] indices) {\n          return padA(indices);\n      }`;return{name:"Pad",inputNames:["A"],inputTypes:[o.TextureType.unpacked],output:{dims:r,type:e.type,textureType:o.TextureType.unpacked},shaderSource:a}},c=t=>{if(!t||1!==t.length)throw new Error("Pad requires 1 input");if("float32"!==t[0].type&&"float64"!==t[0].type)throw new Error("Invalid input type.")},d=t=>{if(!t||2!==t.length&&3!==t.length)throw new Error("Pad requires 2 or 3 inputs");if("int32"!==t[1].type)throw new Error("Invalid input type.");if(t.length>=3&&"string"===t[2].type)throw new Error("Invalid input type.")},h=(t,e,n)=>{const r=(0,s.getGlsl)(t.session.backend.glContext.version),[a,u]=t.calculateTextureWidthAndHeight(e.dims,o.TextureType.unpacked),l=i.ShapeUtil.computeStrides(e.dims);switch(n.mode){case"constant":return p(r,e.dims,l,a,u,n.pads,n.value);case"reflect":return f(r,e.dims,l,a,u,n.pads);case"edge":return g(r,e.dims,l,a,u,n.pads);default:throw new Error("Invalid mode")}},p=(t,e,n,r,i,s,o)=>{const a=e.length;let u="";for(let t=a-1;t>=0;--t)u+=`\n        k = m[${t}] - ${s[t]};\n        if (k < 0)  return constant;\n        if (k >= ${e[t]}) return constant;\n        offset += k * ${n[t]};\n        `;return`\n      float padA(int m[${a}]) {\n        const float constant = float(${o});\n        int offset = 0;\n        int k = 0;\n        ${u}\n        vec2 coords = offsetToCoords(offset, ${r}, ${i});\n        float value = getColorAsFloat(${t.texture2D}(A, coords));\n        return value;\n      }\n      `},f=(t,e,n,r,i,s)=>{const o=e.length;let a="";for(let t=o-1;t>=0;--t)a+=`\n        k = m[${t}] - ${s[t]};\n        if (k < 0) { k = -k; }\n        {\n          const int _2n_1 = ${2*(e[t]-1)};\n          k = int( mod( float(k), float(_2n_1) ) ) ;\n          if(k >= ${e[t]}) { k = _2n_1 - k; }\n        }\n        offset += k * ${n[t]};\n        `;return`\n      float padA(int m[${o}]) {\n        int offset = 0;\n        int k = 0;\n        ${a}\n        vec2 coords = offsetToCoords(offset, ${r}, ${i});\n        float value = getColorAsFloat(${t.texture2D}(A, coords));\n        return value;\n      }\n      `},g=(t,e,n,r,i,s)=>{const o=e.length;let a="";for(let t=o-1;t>=0;--t)a+=`\n        k = m[${t}] - ${s[t]};\n        if (k < 0)  k = 0;\n        if (k >= ${e[t]}) k = ${e[t]-1};\n        offset += k * ${n[t]};\n      `;return`\n      float padA(int m[${o}]) {\n        int offset = 0;\n        int k = 0;\n        ${a}\n        vec2 coords = offsetToCoords(offset, ${r}, ${i});\n        float value = getColorAsFloat(${t.texture2D}(A, coords));\n        return value;\n      }\n      `}},2143:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.globalMaxPool=e.parseMaxPoolAttributes=e.maxPool=e.parseGlobalAveragePoolAttributes=e.globalAveragePool=e.parseAveragePoolAttributes=e.averagePool=void 0;const r=n(246),i=n(2517),s=n(2039);e.averagePool=(t,e,n)=>{d(e);const r={name:"AveragePool",inputNames:["X"],inputTypes:[s.TextureType.unpacked],cacheHint:n.cacheKey};return[t.run(Object.assign(Object.assign({},r),{get:()=>o(e,r,!1,n)}),e)]},e.parseAveragePoolAttributes=t=>{const e=t.attributes.getString("auto_pad","NOTSET"),n=t.attributes.getInt("ceil_mode",0),i=0!==t.attributes.getInt("count_include_pad",0),s=t.attributes.getInts("kernel_shape"),o=t.attributes.getInts("strides",[]),a=t.attributes.getInts("pads",[]);if(0!==n)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");return(0,r.createAttributeWithCacheKey)({autoPad:e,ceilMode:n,countIncludePad:i,kernelShape:s,strides:o,pads:a})};const o=(t,e,n,r)=>{const[o,a]=u(t,r,n),l=i.ShapeUtil.size(o.kernelShape);let c="";o.countIncludePad?c+=`value /= float(${l});`:c+=`value /= float(${l} - pad);`;const d=`\n        ${h(t[0].dims,o,"value += _X(x);",c,"0.0")}\n      `;return Object.assign(Object.assign({},e),{output:{dims:a,type:t[0].type,textureType:s.TextureType.unpacked},shaderSource:d})};e.globalAveragePool=(t,e,n)=>{d(e);const r={name:"GlobalAveragePool",inputNames:["X"],inputTypes:[s.TextureType.unpacked],cacheHint:`${n.countIncludePad}`};return[t.run(Object.assign(Object.assign({},r),{get:()=>o(e,r,!0,n)}),e)]},e.parseGlobalAveragePoolAttributes=t=>{const e=0!==t.attributes.getInt("count_include_pad",0);return(0,r.createAttributeWithCacheKey)({autoPad:"",ceilMode:0,countIncludePad:e,kernelShape:[],strides:[],pads:[]})},e.maxPool=(t,e,n)=>{d(e);const r={name:"MaxPool",inputNames:["X"],inputTypes:[s.TextureType.unpacked],cacheHint:n.cacheKey};return[t.run(Object.assign(Object.assign({},r),{get:()=>a(e,r,!1,n)}),e)]},e.parseMaxPoolAttributes=t=>{const e=t.attributes.getString("auto_pad","NOTSET"),n=t.attributes.getInt("ceil_mode",0),i=t.attributes.getInts("kernel_shape"),s=t.attributes.getInts("strides",[]),o=t.attributes.getInts("pads",[]),a=t.attributes.getInt("storage_order",0),u=t.attributes.getInts("dilations",[]);if(0!==a)throw new Error("column major storage order is not yet supported for MaxPool");if(0!==n)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");return(0,r.createAttributeWithCacheKey)({autoPad:e,ceilMode:n,countIncludePad:!1,kernelShape:i,strides:s,pads:o,storageOrder:a,dilations:u})};const a=(t,e,n,r)=>{const[i,o]=u(t,r,n),a=`\n      ${h(t[0].dims,i,"\n      value = max(_X(x), value);\n    ","","-1e5")}\n    `;return Object.assign(Object.assign({},e),{output:{dims:o,type:t[0].type,textureType:s.TextureType.unpacked},shaderSource:a})},u=(t,e,n)=>{const r=t[0].dims.slice(),s=Object.hasOwnProperty.call(e,"dilations"),o=e.kernelShape.slice(),a=e.strides.slice(),u=s?e.dilations.slice():[],l=e.pads.slice();i.PoolConvUtil.adjustPoolAttributes(n,r,o,a,u,l);const c=i.PoolConvUtil.computePoolOutputShape(n,r,a,u,o,l,e.autoPad),d=Object.assign({},e);return s?Object.assign(d,{kernelShape:o,strides:a,pads:l,dilations:u,cacheKey:e.cacheKey}):Object.assign(d,{kernelShape:o,strides:a,pads:l,cacheKey:e.cacheKey}),[d,c]},l={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[],cacheKey:""},c={name:"GlobalMaxPool",inputNames:["X"],inputTypes:[s.TextureType.unpacked]};e.globalMaxPool=(t,e)=>(d(e),[t.run(Object.assign(Object.assign({},c),{get:()=>a(e,c,!0,l)}),e)]);const d=t=>{if(!t||1!==t.length)throw new Error("Pool ops requires 1 input.");if("float32"!==t[0].type&&"float64"!==t[0].type)throw new Error("Invalid input type.")},h=(t,e,n,r,s)=>{const o=t.length;if(e.kernelShape.length<=2){const i=e.kernelShape[e.kernelShape.length-1],a=e.strides[e.strides.length-1],u=e.pads[e.pads.length/2-1],l=e.pads[e.pads.length-1],c=t[o-1];let d="",h="",p="";if(d=u+l!==0?`\n          for (int i = 0; i < ${i}; i++) {\n            x[${o} - 1] = indices[${o} - 1] * ${a} - ${u} + i;\n            if (x[${o} - 1] < 0 || x[${o} - 1] >= ${c}) {\n              pad++;\n              continue;\n            }\n            ${n}\n          }`:`\n          for (int i = 0; i < ${i}; i++) {\n            x[${o} - 1] = indices[${o} - 1] * ${a} - ${u} + i;\n            ${n}\n          }`,2===e.kernelShape.length){const n=e.kernelShape[e.kernelShape.length-2],r=e.strides[e.strides.length-2],s=e.pads[e.pads.length/2-2],a=e.pads[e.pads.length-2],u=t[o-2];h=s+a!==0?`\n            for (int j = 0; j < ${n}; j++) {\n              x[${o} - 2] = indices[${o} - 2] * ${r} - ${s} + j;\n              if (x[${o} - 2] < 0 || x[${o} - 2] >= ${u}) {\n                pad+= ${i};\n                continue;\n              }\n          `:`\n            for (int j = 0; j < ${n}; j++) {\n              x[${o} - 2] = indices[${o} - 2] * ${r} - ${s} + j;\n            `,p="\n          }\n        "}return`\n        float process(int indices[${o}]) {\n          int x[${o}];\n          copyVec(indices, x);\n\n          float value = ${s};\n          int pad = 0;\n          ${h}\n          ${d}\n          ${p}\n          ${r}\n          return value;\n        }\n      `}{const a=i.ShapeUtil.size(e.kernelShape),u=i.ShapeUtil.computeStrides(e.kernelShape),l=u.length,c=e.pads.length,d=f(l),h=p(t,"inputDims"),g=p(e.pads,"pads"),m=p(u,"kernelStrides"),_=p(e.strides,"strides");let b="";return b=e.pads.reduce(((t,e)=>t+e))?`\n            if (x[j] >= inputDims[j] || x[j] < 0) {\n              pad++;\n              isPad = true;\n              break;\n            }\n          }\n          if (!isPad) {\n            ${n}\n          }`:`\n          }\n          ${n}\n        `,`\n        ${d}\n        float process(int indices[${o}]) {\n          int x[${o}];\n          copyVec(indices, x);\n          int offset[${l}];\n          int pads[${c}];\n          int inputDims[${o}];\n          int kernelStrides[${l}];\n          int strides[${l}];\n          ${g}\n          ${h}\n          ${_}\n          ${m}\n\n          float value = ${s};\n          int pad = 0;\n          bool isPad = false;\n          for (int i = 0; i < ${a}; i++) {\n            offsetToIndices(i, kernelStrides, offset);\n            isPad = false;\n            for (int j = ${o} - ${l}; j < ${o}; j++) {\n              x[j] = indices[j] * strides[j - ${o} + ${l}]\n                + offset[j - ${o} + ${l}] - pads[j - 2];\n              ${b}\n          }\n          ${r}\n\n          return value;\n        }\n      `}},p=(t,e)=>{let n="";for(let r=0;r<t.length;r++)n+=`\n      ${e}[${r}] = ${t[r]};\n    `;return n},f=t=>`\n  void offsetToIndices(int offset, int[${t}] strides, out int[${t}] indices) {\n    if (${t} == 0) {\n      return;\n    }\n    for (int i = 0; i < ${t} - 1; ++i) {\n      indices[i] = offset / strides[i];\n      offset -= indices[i] * strides[i];\n    }\n    indices[${t} - 1] = offset;\n  }`},4939:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.reduceLogSumSquare=e.reduceLogSum=e.reduceProd=e.reduceMin=e.reduceMax=e.reduceMean=e.reduceSum=e.parseReduceAttributes=void 0;const r=n(246),i=n(782),s=n(2517),o=n(2039),a=(t,e,n,r,i)=>{l(e);const s={name:r,inputNames:["A"],inputTypes:[o.TextureType.unpacked]};return[t.run(Object.assign(Object.assign({},s),{cacheHint:n.cacheKey,get:()=>u(t,e,n,r,i,s)}),e)]};e.parseReduceAttributes=t=>{const e=t.attributes.getInts("axes",[]),n=1===t.attributes.getInt("keepdims",1);return(0,r.createAttributeWithCacheKey)({axes:e,keepDims:n})};const u=(t,e,n,r,i,a)=>{const u=[],l=e[0].dims.length||1,c=[],d=s.ShapeUtil.normalizeAxes(n.axes,e[0].dims.length),h=i(e,d);let p=h[1];for(let t=0;t<e[0].dims.length;t++)d.indexOf(t)>=0||0===d.length?(n.keepDims&&u.push(1),p=`\n          for(int j${t} = 0; j${t} < ${e[0].dims[t]}; j${t}++) {\n            inputIdx[${t}] = j${t};\n            ${p}\n          }`):(c.push(`inputIdx[${t}] = outputIdx[${u.length}];`),u.push(e[0].dims[t]));const f=`\n      float process(int outputIdx[${u.length||1}]) {\n        float value;                 // final result\n        int inputIdx[${l}];      // addressing input data\n        ${c.join("\n")}\n        ${h[0]}       // init ops for reduce max/min\n        ${p}\n        ${h[2]}       // final computation for reduce mean\n        return value;\n      }`;return Object.assign(Object.assign({},a),{output:{dims:u,type:e[0].type,textureType:o.TextureType.unpacked},shaderSource:f})},l=t=>{if(!t||1!==t.length)throw new Error("Reduce op requires 1 input.");if(-1===i.NUMBER_TYPES.indexOf(t[0].type))throw new Error("Invalid input type.")};e.reduceSum=(t,e,n)=>a(t,e,n,"ReduceSum",(()=>["value = 0.0;","value += _A(inputIdx);",""])),e.reduceMean=(t,e,n)=>a(t,e,n,"ReduceMean",((t,e)=>{let n=1;for(let r=0;r<t[0].dims.length;r++)(e.indexOf(r)>=0||0===e.length)&&(n*=t[0].dims[r]);return["value = 0.0;","value += _A(inputIdx);",`value /= ${n}.;`]})),e.reduceMax=(t,e,n)=>a(t,e,n,"ReduceMax",((t,e)=>{const n=[];for(let r=0;r<t[0].dims.length;r++)(e.indexOf(r)>=0||0===e.length)&&n.push(`inputIdx[${r}] = 0;`);return[`${n.join("\n")}\nvalue = _A(inputIdx);`,"value = max(value, _A(inputIdx));",""]})),e.reduceMin=(t,e,n)=>a(t,e,n,"ReduceMin",((t,e)=>{const n=[];for(let r=0;r<t[0].dims.length;r++)(e.indexOf(r)>=0||0===e.length)&&n.push(`inputIdx[${r}] = 0;`);return[`${n.join("\n")}\nvalue = _A(inputIdx);`,"value = min(value, _A(inputIdx));",""]})),e.reduceProd=(t,e,n)=>a(t,e,n,"ReduceProd",(()=>["value = 1.0;","value *= _A(inputIdx);",""])),e.reduceLogSum=(t,e,n)=>a(t,e,n,"ReduceLogSum",(()=>["value = 0.0;","value += _A(inputIdx);","value = log(value);"])),e.reduceLogSumSquare=(t,e,n)=>a(t,e,n,"ReduceLogSumSquare",(()=>["float t; value = 0.0;","t = _A(inputIdx); value += t * t;",""]))},7019:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isReshapeCheap=e.processDims3D=e.createPackedReshape3DProgramInfoLoader=void 0;const r=n(2517),i=n(5060),s=n(2039),o=n(2827);e.createPackedReshape3DProgramInfoLoader=(t,e,n)=>{const a=(t=>({name:"Reshape (packed)",inputTypes:[s.TextureType.packed],inputNames:["A"],cacheHint:`${t}`}))(n);return Object.assign(Object.assign({},a),{get:()=>((t,e,n,a)=>{const u=e.dims,l=a;let c="";for(let t=0;t<4;t++){let e="";switch(t){case 0:e="outputCoords = rc;";break;case 1:e="outputCoords = ivec3(rc.x, rc.y+1, rc.z);";break;case 2:e="outputCoords = ivec3(rc.x, rc.y, rc.z+1);";break;case 3:e="outputCoords = ivec3(rc.x, rc.y+1, rc.z+1);";break;default:throw new Error}c+=`\n        ${e}\n        ${t>0?"if(outputCoords.y < rows && outputCoords.z < cols){":""}\n          int flattenedIndex = getFlattenedIndex(outputCoords);\n\n          ivec3 inputRC = inputCoordsFromReshapedOutCoords(flattenedIndex);\n          vec2 innerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n          result[${t}] = getChannel(getA(inputRC.x, inputRC.y, inputRC.z), innerDims);\n\n        ${t>0?"}":""}\n      `}const d=(0,i.getGlsl)(t.session.backend.glContext.version),h=`\n      ${function(t){const e=r.ShapeUtil.computeStrides(t),n=["b","r","c"],i="index";return`\n    ivec3 inputCoordsFromReshapedOutCoords(int index) {\n      ${e.map(((t,r)=>`int ${n[r]} = ${i} / ${t}; ${r===e.length-1?`int ${n[r+1]} = ${i} - ${n[r]} * ${t}`:`index -= ${n[r]} * ${t}`};`)).join("")}\n      return ivec3(b, r, c);\n    }\n  `}(u)}\n      ${function(t){const e=r.ShapeUtil.computeStrides(t);return`\n  int getFlattenedIndex(ivec3 coords) {\n    // reverse y, z order\n    return coords.x * ${e[0]} + coords.z * ${e[1]} + coords.y;\n  }\n`}(l)}\n      ${(0,o.unpackFromChannel)()}\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n\n        vec4 result = vec4(0.0);\n\n        ivec3 outputCoords;\n        int rows = ${l[2]};\n        int cols = ${l[1]};\n\n        ${c}\n        ${d.output} = result;\n      }\n    `;return Object.assign(Object.assign({},n),{output:{dims:l,type:e.type,textureType:s.TextureType.packed},shaderSource:h,hasMain:!0})})(t,e,a,n)})},e.processDims3D=function(t){if(0===t.length)return[1,1,1];let e=1;for(let n=0;n<t.length-2;++n)e*=t[n];return[e,t.length>1?t[t.length-2]:1,t[t.length-1]]},e.isReshapeCheap=function(t,e){let n=!1;return n=0===t.length||0===e.length||(t.length<2||e.length<2?t[t.length-1]===e[e.length-1]:t[t.length-1]===e[e.length-1]&&t[t.length-2]===e[e.length-2]),n}},718:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.reshape=void 0;const r=n(2517);e.reshape=(t,e)=>{const n=r.ShapeUtil.calculateReshapedDims(e[0].dims,e[1].integerData);return t.session.pack?[t.reshapePacked(e[0],n)]:[t.reshapeUnpacked(e[0],n)]}},2268:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseResizeAttributesV11=e.parseResizeAttributesV10=e.resize=void 0;const r=n(5060),i=n(2039),s=n(9390),o=n(2827),a=n(9793),u={name:"Resize",inputNames:["A"],inputTypes:[i.TextureType.packed]};e.resize=(t,e,n)=>((0,a.validateInputs)(e,n),[t.run(Object.assign(Object.assign({},u),{cacheHint:n.cacheKey,get:()=>l(t,e,n)}),e)]),e.parseResizeAttributesV10=t=>(0,a.parseUpsampleAttributes)(t,10),e.parseResizeAttributesV11=t=>(0,a.parseUpsampleAttributes)(t,11);const l=(t,e,n)=>{const a=(0,r.getGlsl)(t.session.backend.glContext.version),[l,d]=c(e,n);if(l.every((t=>1===t))&&"tf_crop_and_resize"!==n.coordinateTransformMode)return Object.assign(Object.assign({},u),{output:{dims:d,type:e[0].type,textureType:i.TextureType.packed},hasMain:!0,shaderSource:`void main() {\n                    vec4 v = ${a.texture2D}(X, TexCoords);\n                    ${a.output} = v;\n                }`});const h=d.length;if(h<2)throw new Error(`output dimension should be at least 2, but got ${h}`);const p=d[h-2],f=d[h-1],g=e[0].dims;if(h!==g.length)throw new Error(`output dimension should match input ${g.length}, but got ${h}`);const m=g[h-2],_=g[h-1],b=l[h-2],y=l[h-1];let w="";if("linear"!==n.mode)throw new Error(`resize (packed) does not support mode: '${n.mode}'`);switch(n.coordinateTransformMode){case"asymmetric":w="\n                    vec4 getSourceFracIndex(ivec4 coords) {\n                        return vec4(coords) / scaleWHWH;\n                    }\n                ";break;case"half_pixel":w="\n                    vec4 getSourceFracIndex(ivec4 coords) {\n                        return (vec4(coords) + 0.5) / scaleWHWH - 0.5;\n                    }\n                ";break;case"pytorch_half_pixel":w=`\n                    vec4 getSourceFracIndex(ivec4 coords) {\n                        vec4 fcoords = vec4(coords);\n                        return vec4(\n                            ${f}.0 > 1.0 ? (fcoords.x + 0.5) / scaleWHWH.x - 0.5 : 0.0,\n                            ${p}.0 > 1.0 ? (fcoords.y + 0.5) / scaleWHWH.y - 0.5 : 0.0,\n                            ${f}.0 > 1.0 ? (fcoords.z + 0.5) / scaleWHWH.z - 0.5 : 0.0,\n                            ${p}.0 > 1.0 ? (fcoords.w + 0.5) / scaleWHWH.w - 0.5 : 0.0\n                          );\n                    }\n                `;break;case"align_corners":w=`\n                    vec4 getSourceFracIndex(ivec4 coords) {\n                        vec4 resized = vec4(${f}.0 - 1.0, ${p}.0 - 1.0, ${f}.0 - 1.0,\n                            ${p}.0 - 1.0);\n                        vec4 original = vec4(${_}.0 - 1.0, ${m}.0 - 1.0, ${_}.0 - 1.0,\n                            ${m}.0 - 1.0);\n                        vec4 new_scale = original / resized;\n                        return vec4(coords) * new_scale;\n                    }\n                `;break;default:throw new Error(`resize (packed) does not support coordinateTransformMode:                                 '${n.coordinateTransformMode}'`)}const v=(0,s.getCoordsDataType)(h),x=`\n            const vec2 inputWH = vec2(${m}.0, ${_}.0);\n            const vec4 scaleWHWH = vec4(float(${b}), float(${y}), float(${b}), float(${y}));\n            ${(0,o.unpackFromChannel)()}\n            ${w}\n            float getAValue(int x10, int r, int c, int d) {\n                return getChannel(getA(x10, r, c, d), vec2(c, d));\n            }\n            void main() {\n                ${v} rc = getOutputCoords();\n\n                int batch = rc[0];\n                int depth = rc[1];\n\n                // retrieve the 4 coordinates that is used in the 4 packed output values.\n                ivec4 coords = ivec4(rc.wz, rc.w + 1, rc.z + 1);\n\n                // calculate the source index in fraction\n                vec4 sourceFrac = getSourceFracIndex(coords);\n\n                // get the lower and upper bound of the 4 values that will be packed into one texel.\n                ivec4 x00 = ivec4(max(sourceFrac.xy, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.xy)));\n                ivec4 x01 = ivec4(max(sourceFrac.xw, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.xw)));\n                ivec4 x10 = ivec4(max(sourceFrac.zy, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.zy)));\n                ivec4 x11 = ivec4(max(sourceFrac.zw, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.zw)));\n\n                bool hasNextRow = rc.w < ${p-1};\n                bool hasNextCol = rc.z < ${f-1};\n\n                // pack x00, x01, x10, x11's top-left corner into one vec4 structure\n                vec4 topLeft = vec4(\n                    getAValue(batch, depth, x00.x, x00.y),\n                    hasNextCol ? getAValue(batch, depth, x01.x, x01.y) : 0.0,\n                    hasNextRow ? getAValue(batch, depth, x10.x, x10.y) : 0.0,\n                    (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.x, x11.y) : 0.0);\n\n                // pack x00, x01, x10, x11's top-right corner into one vec4 structure\n                vec4 topRight = vec4(\n                    getAValue(batch, depth, x00.x, x00.w),\n                    hasNextCol ? getAValue(batch, depth, x01.x, x01.w) : 0.0,\n                    hasNextRow ? getAValue(batch, depth, x10.x, x10.w) : 0.0,\n                    (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.x, x11.w) : 0.0);\n\n                // pack x00, x01, x10, x11's bottom-left corner into one vec4 structure\n                vec4 bottomLeft = vec4(\n                    getAValue(batch, depth, x00.z, x00.y),\n                    hasNextCol ? getAValue(batch, depth, x01.z, x01.y) : 0.0,\n                    hasNextRow ? getAValue(batch, depth, x10.z, x10.y) : 0.0,\n                    (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.z, x11.y) : 0.0);\n\n                // pack x00, x01, x10, x11's bottom-right corner into one vec4 structure\n                vec4 bottomRight = vec4(\n                    getAValue(batch, depth, x00.z, x00.w),\n                    hasNextCol ? getAValue(batch, depth, x01.z, x01.w) : 0.0,\n                    hasNextRow ? getAValue(batch, depth, x10.z, x10.w) : 0.0,\n                    (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.z, x11.w) : 0.0);\n\n                // calculate the interpolation fraction on u and v direction\n                vec4 frac = vec4(sourceFrac) - floor(sourceFrac);\n                vec4 clampFrac = clamp(frac, vec4(0.0), vec4(1.0));\n\n                vec4 top = mix(topLeft, topRight, clampFrac.ywyw);\n                vec4 bottom = mix(bottomLeft, bottomRight, clampFrac.ywyw);\n                vec4 newValue = mix(top, bottom, clampFrac.xxzz);\n\n                ${a.output} = vec4(newValue);\n            }\n        `;return Object.assign(Object.assign({},u),{output:{dims:d,type:e[0].type,textureType:i.TextureType.packed},hasMain:!0,shaderSource:x})},c=(t,e)=>{const n=t[0].dims;let r,i=e.scales;if(0===i.length){const s=t[e.scalesInputIdx];if(s&&0!==s.size){if(t[e.sizesInputIdx])throw new Error("Only one of scales or sizes must be provided as input.");i=d(s,e.mode,e.isResize)}else{const s=t[e.sizesInputIdx];if(!s||0===s.size)throw new Error("Either scales or sizes MUST be provided as input.");r=Array.from(s.integerData),i=h(r,n,e.mode,e.isResize)}}else if(t[e.sizesInputIdx])throw new Error("Only one of scales or sizes must be provided as input.");const s=r||n.map(((t,e)=>Math.floor(t*i[e])));return[i,s]},d=(t,e,n)=>{const r=Array.from(t.floatData);return(0,a.scalesValidation)(r,e,n),r},h=(t,e,n,r)=>{const i=e.length,s=new Array(i);for(let n=0,r=i;n<r;n++)if(0===e[n]){if(0!==t[n])throw new Error("Input dim is zero but required output dim is non-zero.");s[n]=1}else s[n]=t[n]/e[n];return(0,a.scalesValidation)(s,n,r),s}},8117:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.shape=void 0;const r=n(9162);e.shape=(t,e)=>(i(e),[new r.Tensor([e[0].dims.length],"int32",void 0,void 0,new Int32Array(e[0].dims))]);const i=t=>{if(!t||1!==t.length)throw new Error("Shape requires 1 input.")}},2278:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sliceV10=e.parseSliceAttributes=e.slice=void 0;const r=n(246),i=n(782),s=n(2517),o=n(2039),a={name:"Slice",inputNames:["A"],inputTypes:[o.TextureType.unpacked]};e.slice=(t,e,n)=>(l(e),[t.run(Object.assign(Object.assign({},a),{cacheHint:n.cacheKey,get:()=>u(t,e[0],n)}),e)]),e.parseSliceAttributes=t=>{const e=t.attributes.getInts("starts"),n=t.attributes.getInts("ends"),i=t.attributes.getInts("axes",[]);return(0,r.createAttributeWithCacheKey)({starts:e,ends:n,axes:i})};const u=(t,e,n)=>{const r=0===n.axes.length?e.dims.slice(0).map(((t,e)=>e)):n.axes,i=s.ShapeUtil.normalizeAxes(r,e.dims.length),u=n.starts.map(((t,n)=>t>e.dims[i[n]]-1?e.dims[i[n]]:s.ShapeUtil.normalizeAxis(t,e.dims[i[n]]))),l=n.ends.map(((t,n)=>t>e.dims[i[n]]-1?e.dims[i[n]]:s.ShapeUtil.normalizeAxis(t,e.dims[i[n]]))),c=e.dims.slice(),d=[];for(let t=0;t<i.length;t++)c[i[t]]=l[t]-u[t],u[t]>0&&d.push(`outputIdx[${i[t]}] += ${u[t]};`);const h=`\n      float process(int outputIdx[${c.length}]) {\n        ${d.join("\n      ")}\n        return _A(outputIdx);\n      }`;return Object.assign(Object.assign({},a),{output:{dims:c,type:e.type,textureType:o.TextureType.unpacked},shaderSource:h})},l=t=>{if(!t||1!==t.length)throw new Error("Slice requires 1 input.");if(-1===i.NUMBER_TYPES.indexOf(t[0].type))throw new Error("Invalid input type.")};e.sliceV10=(t,e)=>{d(e);const n=c(t,e);return[t.run(Object.assign(Object.assign({},a),{cacheHint:n.cacheKey,get:()=>u(t,e[0],n)}),[e[0]])]};const c=(t,e)=>{if(!t.session.isInitializer(e[1].dataId)||!t.session.isInitializer(e[2].dataId)||e.length>=4&&!t.session.isInitializer(e[3].dataId)||e.length>=5&&!t.session.isInitializer(e[4].dataId))throw new Error("dynamic slice attributes are not allowed");if(e.length>=5&&e[4].integerData.some((t=>1!==t)))throw new Error("currently non-1 steps is not supported for Slice");const n=Array.from(e[1].integerData),r=Array.from(e[2].integerData),i=e.length>=4?Array.from(e[3].integerData):[];return{starts:n,ends:r,axes:i,cacheKey:`${i};${n};${r}`}},d=t=>{if(!t||t.length<3||t.length>5)throw new Error("Invalid input number.");if("int32"!==t[1].type||1!==t[1].dims.length)throw new Error("Invalid input type.");if("int32"!==t[2].type||1!==t[2].dims.length)throw new Error("Invalid input type.");if(t.length>=4&&("int32"!==t[3].type||1!==t[3].dims.length))throw new Error("Invalid input type.");if(t.length>=5&&("int32"!==t[4].type||1!==t[4].dims.length))throw new Error("Invalid input type.")}},5524:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.softmaxV13=e.parseSoftmaxAttributesV13=e.parseSoftmaxAttributes=e.softmax=void 0;const r=n(246),i=n(2517),s=n(5060),o=n(2039),a=n(3738),u={name:"SoftmaxComputeMax",inputNames:["A"],inputTypes:[o.TextureType.unpacked]},l={name:"SoftmaxComputeScale",inputNames:["A","Max"],inputTypes:[o.TextureType.unpacked,o.TextureType.unpacked]},c={name:"SoftMax",inputNames:["A","Max","Norm"],inputTypes:[o.TextureType.unpacked,o.TextureType.unpacked,o.TextureType.unpacked]};e.softmax=(t,e,n)=>{g(e);const r=e[0].dims.slice(),s=i.ShapeUtil.normalizeAxis(n.axis,r.length),o=i.ShapeUtil.sizeToDimension(r,s),a=i.ShapeUtil.sizeFromDimension(r,s);return d(t,e,n,o,a)},e.parseSoftmaxAttributes=t=>(0,r.createAttributeWithCacheKey)({axis:t.attributes.getInt("axis",1)}),e.parseSoftmaxAttributesV13=t=>(0,r.createAttributeWithCacheKey)({axis:t.attributes.getInt("axis",-1)}),e.softmaxV13=(t,e,n)=>{g(e);const s=e[0].dims.slice(),o=i.ShapeUtil.normalizeAxis(n.axis,s.length),u=s.length,l=o!==u-1,c=[];let h,p=[],f=[];l&&(p=Array.from({length:u}).map(((t,e)=>e)),p[o]=u-1,p[u-1]=o,p.map((t=>c.push(s[t]))),h=(0,r.createAttributeWithCacheKey)({perm:p}),f=(0,a.transpose)(t,e,h));const m=l?i.ShapeUtil.sizeToDimension(c,u-1):i.ShapeUtil.sizeToDimension(s,u-1),_=l?i.ShapeUtil.sizeFromDimension(c,u-1):i.ShapeUtil.sizeFromDimension(s,u-1),b=d(t,l?f:e,n,m,_);return l?(0,a.transpose)(t,b,h):b};const d=(t,e,n,r,i)=>{const s=h(t,e[0],r,i,[r]),o=t.run(Object.assign(Object.assign({},u),{cacheHint:n.cacheKey,get:()=>s}),e),a=p(t,e[0],r,i,s.output.dims,[r]),d=t.run(Object.assign(Object.assign({},l),{cacheHint:n.cacheKey,get:()=>a}),[e[0],o]),g=f(t,e[0],r,i,s.output.dims,a.output.dims);return[t.run(Object.assign(Object.assign({},c),{cacheHint:n.cacheKey,get:()=>g}),[e[0],o,d])]},h=(t,e,n,r,i)=>{const[a,l]=t.calculateTextureWidthAndHeight(e.dims,o.TextureType.unpacked),c=i.length;if(n<1||r<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(1!==i.length)throw new Error("Dimensionality of the output should be 1");if(i[0]!==n)throw new Error("Shape of the output should be equal to logical row count");const d=(0,s.getGlsl)(t.session.backend.glContext.version),h=`\n      float process(int[${c}] indices) {\n        int logical_row_start_offset = indices[0] * ${r};\n\n        float max = getColorAsFloat(${d.texture2D}(A, offsetToCoords(logical_row_start_offset, ${a},\n        ${l} )));\n        for(int i=1; i<${r}; ++i)\n        {\n          float current = getColorAsFloat(${d.texture2D}(A, offsetToCoords(logical_row_start_offset + i,\n            ${a}, ${l})));\n          if(current > max)\n          max = current;\n        }\n\n        return max;\n      }`;return Object.assign(Object.assign({},u),{output:{dims:i,type:e.type,textureType:o.TextureType.unpacked},shaderSource:h})},p=(t,e,n,r,i,a)=>{const[u,c]=t.calculateTextureWidthAndHeight(e.dims,o.TextureType.unpacked),d=a.length;if(n<1||r<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(1!==a.length)throw new Error("Dimensionality of the output should be 1");if(a[0]!==n)throw new Error("Shape of the output should be equal to logical row count");if(1!==i.length)throw new Error("Dimensionality of the intermediate results should be 1");if(i[0]!==n)throw new Error("Shape of the intermediate results should be equal to logical row count");const h=`\n      float process(int[${d}] indices) {\n        int logical_row_start_offset = indices[0] * ${r};\n\n        float norm_factor = 0.0;\n        float max = _Max(indices);\n        for(int i=0; i<${r}; ++i)\n        {\n          norm_factor += exp(getColorAsFloat(${(0,s.getGlsl)(t.session.backend.glContext.version).texture2D}(A, offsetToCoords(logical_row_start_offset + i,\n            ${u}, ${c}))) - max);\n        }\n\n        return norm_factor;\n      }`;return Object.assign(Object.assign({},l),{output:{dims:a,type:e.type,textureType:o.TextureType.unpacked},shaderSource:h})},f=(t,e,n,r,i,s)=>{const[a,u]=t.calculateTextureWidthAndHeight(e.dims,o.TextureType.unpacked),l=e.dims.length;if(n<1||r<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(1!==i.length||1!==s.length)throw new Error("Dimensionality of the intermediate results should be 1");if(i[0]!==n||s[0]!==n)throw new Error("Shape of the intermediate results should be equal to logical row count");const d=`\n      float process(int[${l}] indices) {\n\n      // get offset of current logical tensor index from the 2-D texture coordinates (TexCoords)\n      int offset = coordsToOffset(TexCoords, ${a}, ${u});\n\n      //determine the logical row for this index\n      int logical_row_index[1];\n      logical_row_index[0] = offset / ${r};\n\n      float norm_factor = _Norm(logical_row_index);\n\n      // avoid possible division by 0\n      // if norm_facor is 0, all elements are zero\n      // if so, return 0\n      if(norm_factor == 0.0)\n        return 0.0;\n\n      return exp(_A(indices) - _Max(logical_row_index)) / norm_factor;\n    }`;return Object.assign(Object.assign({},c),{output:{dims:e.dims,type:e.type,textureType:o.TextureType.unpacked},shaderSource:d})},g=t=>{if(!t||1!==t.length)throw new Error("Softmax requires 1 input.");if("float32"!==t[0].type&&"float64"!==t[0].type)throw new Error("Invalid input type")}},5975:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseSplitAttributes=e.split=void 0;const r=n(246),i=n(2517),s=n(2039),o={name:"Split",inputNames:["A"],inputTypes:[s.TextureType.unpacked]};e.split=(t,e,n)=>{l(e);const r=i.ShapeUtil.normalizeAxis(n.axis,e[0].dims.length),s=a(t,e,r,n),c=[];for(let i=0;i<s;++i)c.push(t.run(Object.assign(Object.assign({},o),{cacheHint:`${n.cacheKey};${i}`,get:()=>u(t,e[0],n,r,i)}),e));return c},e.parseSplitAttributes=t=>{const e=t.attributes.getInt("axis",0),n=t.attributes.getInts("split",[]),i=t.outputs.length;return(0,r.createAttributeWithCacheKey)({axis:e,split:n,numOutputs:i})};const a=(t,e,n,r)=>{const[,s]=i.SplitUtil.splitShape(e[0].dims,n,r.split,r.numOutputs);return s.length},u=(t,e,n,r,a)=>{const[u,l]=i.SplitUtil.splitShape(e.dims,r,n.split,n.numOutputs),c=l[a],d=u[a],h=`\n      float process(int indices[${d.length}]) {\n        indices[${r}] += ${c};\n        return _A(indices);\n      }\n    `;return Object.assign(Object.assign({},o),{cacheHint:`${n.cacheKey}:${a}`,output:{dims:d,type:e.type,textureType:s.TextureType.unpacked},shaderSource:h})},l=t=>{if(!t||1!==t.length)throw new Error("Split requires one input.");if("int8"!==t[0].type&&"uint8"!==t[0].type&&"int16"!==t[0].type&&"uint16"!==t[0].type&&"int32"!==t[0].type&&"uint32"!==t[0].type&&"float32"!==t[0].type&&"float64"!==t[0].type&&"bool"!==t[0].type)throw new Error("Invalid input type.")}},3933:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseSqueezeAttributes=e.squeezeV13=e.squeeze=void 0;const r=n(2517);e.squeeze=(t,e,n)=>{i(e);const s=r.ShapeUtil.squeezeShape(e[0].dims,n);return[t.reshapeUnpacked(e[0],s)]},e.squeezeV13=(t,n)=>(s(n),(0,e.squeeze)(t,[n[0]],Array.from(n[1].integerData))),e.parseSqueezeAttributes=t=>t.attributes.getInts("axes");const i=t=>{if(!t||1!==t.length)throw new Error("Squeeze requires 1 input.");if("string"===t[0].type)throw new Error("invalid input tensor types.")},s=t=>{if(!t||2!==t.length)throw new Error("Squeeze requires 2 inputs.");if("int32"!==t[1].type)throw new Error("Invalid input type.")}},6558:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sum=void 0;const r=n(5060),i=n(2039);e.sum=(t,e)=>{o(e);const n={name:"Sum",inputNames:e.map(((t,e)=>`X${e}`)),inputTypes:new Array(e.length).fill(i.TextureType.unpacked)};return[t.run(Object.assign(Object.assign({},n),{get:()=>s(t,e,n)}),e)]};const s=(t,e,n)=>{const s=(0,r.getGlsl)(t.session.backend.glContext.version),o=e[0].dims.slice(),a=`\n      void main() {\n        vec4 result = ${e.map(((t,e)=>`${s.texture2D}(X${e},TexCoords)`)).join(" + ")};\n        ${s.output} = result;\n      }\n    `;return Object.assign(Object.assign({},n),{output:{dims:o,type:e[0].type,textureType:i.TextureType.unpacked},hasMain:!0,shaderSource:a})},o=t=>{if(!t||0===t.length)throw new Error("Sum requires inputs.");const e=t[0].dims.length;for(let n=1;n<t.length;n++){if(e!==t[n].dims.length)throw new Error("Input shapes are mismatched.");for(let r=0;r<e;r++)if(t[0].dims[r]!==t[n].dims[r])throw new Error("Input shapes are not matched.")}if("float32"!==t[0].type&&"float64"!==t[0].type)throw new Error("Invalid input type.");for(let e=1;e<t.length;e++)if(t[0].type!==t[e].type)throw new Error("Input types are not matched.")}},5723:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.tile=void 0;const r=n(782),i=n(2039);e.tile=(t,e)=>{o(e);const n={name:"Tile",inputNames:["A"],inputTypes:[i.TextureType.unpacked]};return[t.run(Object.assign(Object.assign({},n),{get:()=>s(t,e,n)}),e)]};const s=(t,e,n)=>{const r=e[0].dims.slice(),s=new Array(r.length),o=[];for(let t=0;t<r.length;t++)s[t]=r[t]*e[1].numberData[t],o.push(`inputIdx[${t}] = int(mod(float(outputIdx[${t}]), ${r[t]}.));`);const a=s.length,u=`\n      float process(int outputIdx[${a}]) {\n        int inputIdx[${a}];\n        ${o.join("\n")}\n        return _A(inputIdx);\n      }\n    `;return Object.assign(Object.assign({},n),{output:{dims:s,type:e[0].type,textureType:i.TextureType.unpacked},shaderSource:u})},o=t=>{if(!t||2!==t.length)throw new Error("Tile requires 2 input.");if(1!==t[1].dims.length)throw new Error("The second input shape must 1 dimension.");if(t[1].dims[0]!==t[0].dims.length)throw new Error("Invalid input shape.");if(-1===r.NUMBER_TYPES.indexOf(t[0].type))throw new Error("Invalid input type.");if("int32"!==t[1].type&&"int16"!==t[1].type)throw new Error("Invalid repeat type.")}},3738:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseTransposeAttributes=e.transpose=void 0;const r=n(246),i=n(2517),s=n(2039),o={name:"Transpose",inputNames:["A"],inputTypes:[s.TextureType.unpacked]};e.transpose=(t,e,n)=>(d(e),[t.run(Object.assign(Object.assign({},o),{cacheHint:n.cacheKey,get:()=>a(t,e[0],n.perm)}),e)]),e.parseTransposeAttributes=t=>(0,r.createAttributeWithCacheKey)({perm:t.attributes.getInts("perm",[])});const a=(t,e,n)=>{const r=e.dims;n=u(r,n);const i=l(r,n),a=r.length,d=`\n      ${c("perm",n,a)}\n      float process(int indices[${a}]) {\n        int a[${a}];\n        perm(a, indices);\n        return _A(a);\n      }`;return Object.assign(Object.assign({},o),{output:{dims:i,type:e.type,textureType:s.TextureType.unpacked},shaderSource:d})},u=(t,e)=>(e&&e.length!==t.length&&(e=[...t.keys()].reverse()),e),l=(t,e)=>(e=u(t,e),i.ShapeUtil.sortBasedOnPerm(t,e)),c=(t,e,n)=>{const r=[];r.push(`void ${t}(out int a[${n}], int src[${n}]) {`);for(let t=0;t<n;++t)r.push(`\ta[${e[t]}]=src[${t}];`);return r.push("\t}"),r.join("\n")},d=t=>{if(!t||1!==t.length)throw new Error("Transpose requires 1 input.");if("float32"!==t[0].type&&"float64"!==t[0].type)throw new Error("input should be float tensor")}},8710:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.encodeAsUint8=void 0;const r=n(5060),i=n(2039);e.encodeAsUint8=(t,e)=>{const n=e.shape,s=(0,r.getGlsl)(t.session.backend.glContext.version),o=`\n    const float FLOAT_MAX = 1.70141184e38;\n    const float FLOAT_MIN = 1.17549435e-38;\n\n    bool isNaN(float val) {\n      return (val < 1.0 || 0.0 < val || val == 0.0) ? false : true;\n    }\n\n    highp vec4 encodeAsUint8(highp float v) {\n      if (isNaN(v)) {\n        return vec4(255, 255, 255, 255);\n      }\n\n      highp float av = abs(v);\n\n      if(av < FLOAT_MIN) {\n        return vec4(0.0, 0.0, 0.0, 0.0);\n      } else if(v > FLOAT_MAX) {\n        return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n      } else if(v < -FLOAT_MAX) {\n        return vec4(0.0, 0.0,  128.0, 255.0) / 255.0;\n      }\n\n      highp vec4 c = vec4(0,0,0,0);\n\n      highp float e = floor(log2(av));\n      highp float m = exp2(fract(log2(av))) - 1.0;\n\n      c[2] = floor(128.0 * m);\n      m -= c[2] / 128.0;\n      c[1] = floor(32768.0 * m);\n      m -= c[1] / 32768.0;\n      c[0] = floor(8388608.0 * m);\n\n      highp float ebias = e + 127.0;\n      c[3] = floor(ebias / 2.0);\n      ebias -= c[3] * 2.0;\n      c[2] += floor(ebias) * 128.0;\n\n      c[3] += 128.0 * step(0.0, -v);\n\n      return c / 255.0;\n    }\n\n    void main() {\n      float value = ${s.texture2D}(X,TexCoords).r;\n      ${s.output} = encodeAsUint8(value);\n    }`,a={name:"Uint8Encode",inputTypes:[i.TextureType.unpacked],inputNames:["X"],output:{dims:n,type:e.tensor.type,textureType:i.TextureType.downloadUint8AsFloat},shaderSource:o,hasMain:!0};return t.executeProgram(a,[e.tensor])}},4909:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.tanh=e.tan=e.sqrt=e.sin=e.sigmoid=e.relu=e.not=e.neg=e.log=e.parseLeakyReluAttributes=e.leakyRelu=e.identity=e.floor=e.exp=e.parseEluAttributes=e.elu=e.cos=e.ceil=e.clipV11=e.parseClipAttributes=e.clip=e.atan=e.asin=e.acos=e.abs=e.glslTanh=e.glslTan=e.glslSqrt=e.glslSigmoid=e.glslRelu=e.glslSin=e.glslNot=e.glslNeg=e.glslLog=e.glslLeakyRelu=e.glslIdentity=e.glslClip=e.glslFloor=e.glslExp=e.glslElu=e.glslCos=e.glslCeil=e.glslAtan=e.glslAsin=e.glslAcos=e.glslAbs=void 0;const r=n(246),i=n(2517),s=n(8520),o=n(5060),a=n(2039);function u(){return I("abs")}function l(){return I("acos")}function c(){return I("asin")}function d(){return I("atan")}function h(){return I("ceil")}function p(){return I("cos")}function f(t){const e="elu";return{body:`\n  const float alpha = float(${t});\n\n  float ${e}_(float a) {\n    return a >= 0.0 ? a: (exp(a) - 1.0) * alpha;\n  }\n  vec4 ${e}_(vec4 v) {\n    return vec4(${e}_(v.x), ${e}_(v.y), ${e}_(v.z), ${e}_(v.w));\n  }\n  `,name:e,type:s.FunctionType.ValueBased}}function g(){return I("exp")}function m(){return I("floor")}function _(t,e){const n="clip";return{body:`\n  const float min = float(${t});\n  const float max = float(${e});\n\n  float ${n}_(float a) {\n    return clamp(a, min, max);\n  }\n  vec4 ${n}_(vec4 v) {\n    return clamp(v, min, max);\n  }\n  `,name:n,type:s.FunctionType.ValueBased}}function b(){const t="indentity";return{body:`\n  float ${t}_(float a) {\n    return a;\n  }\n  vec4 ${t}_(vec4 v) {\n    return v;\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}function y(t){const e="leakyRelu";return{body:`\n  const float alpha = float(${t});\n\n  float ${e}_(float a) {\n    return a < 0.0 ? a * alpha : a;\n  }\n  vec4 ${e}_(vec4 v) {\n    return vec4(${e}_(v.x), ${e}_(v.y), ${e}_(v.z), ${e}_(v.w));\n  }\n  `,name:e,type:s.FunctionType.ValueBased}}function w(){return I("log")}function v(){const t="neg";return{body:`\n  float ${t}_(float a) {\n    return -a;\n  }\n  vec4 ${t}_(vec4 v) {\n    return -v;\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}function x(){const t="not";return{body:`\n  float ${t}_(float a) {\n    return float( ! bool(a) );\n  }\n  bool ${t}_(bool a) {\n    return !a;\n  }\n  vec4 ${t}_(vec4 v) {\n    return vec4(!bool(v.x), !bool(v.y), !bool(v.z), !bool(v.w));\n  }\n  bvec4 ${t}_(bvec4 v) {\n    return bvec4(!v.x, !v.y, !v.z, !v.w);\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}function T(){return I("sin")}function S(){const t="relu";return{body:`\n  float ${t}_(float a) {\n    return max( a, 0.0 );\n  }\n  vec4 ${t}_(vec4 v) {\n    return max( v, 0.0 );\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}function A(){const t="sigmoid";return{body:`\n  float ${t}_(float a) {\n    return 1.0 / (1.0 + exp(-a));\n  }\n  vec4 ${t}_(vec4 v) {\n    return 1.0 / (1.0 + exp(-v));\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}function k(){return I("sqrt")}function O(){return I("tan")}function E(){const t="tanh";return{body:`\n  float ${t}_(float a) {\n    a = clamp(a, -10., 10.);\n    a = exp(2.*a);\n    return (a - 1.) / (a + 1.);\n  }\n  vec4 ${t}_(vec4 v) {\n    v = clamp(v, -10., 10.);\n    v = exp(2.*v);\n    return (v - 1.) / (v + 1.);\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}function I(t){return{body:`\n  float ${t}_(float a) {\n    return ${t}(a);\n  }\n  vec4 ${t}_(vec4 v) {\n    return ${t}(v);\n  }\n  `,name:t,type:s.FunctionType.ValueBased}}e.glslAbs=u,e.glslAcos=l,e.glslAsin=c,e.glslAtan=d,e.glslCeil=h,e.glslCos=p,e.glslElu=f,e.glslExp=g,e.glslFloor=m,e.glslClip=_,e.glslIdentity=b,e.glslLeakyRelu=y,e.glslLog=w,e.glslNeg=v,e.glslNot=x,e.glslSin=T,e.glslRelu=S,e.glslSigmoid=A,e.glslSqrt=k,e.glslTan=O,e.glslTanh=E;const P=(t,e,n,r)=>{const i=t.session.pack?a.TextureType.packed:a.TextureType.unpacked,s={name:n.name,inputTypes:[i],inputNames:["A"],cacheHint:r};return Object.assign(Object.assign({},s),{get:()=>((t,e,n,r)=>{const i=t.session.pack?a.TextureType.packed:a.TextureType.unpacked,s=(0,o.getGlsl)(t.session.backend.glContext.version);return Object.assign(Object.assign({},e),{output:{dims:n.dims,type:n.type,textureType:i},shaderSource:`\n     ${r.body}\n     void main() {\n       vec4 v = ${s.texture2D}(A, TexCoords);\n       v = ${r.name}_(v);\n       ${s.output} = v;\n     }\n     `,hasMain:!0})})(t,s,e,n)})};e.abs=(t,e)=>[t.run(P(t,e[0],u()),e)],e.acos=(t,e)=>[t.run(P(t,e[0],l()),e)],e.asin=(t,e)=>[t.run(P(t,e[0],c()),e)],e.atan=(t,e)=>[t.run(P(t,e[0],d()),e)],e.clip=(t,e,n)=>[t.run(P(t,e[0],_(n.min,n.max),n.cacheKey),e)],e.parseClipAttributes=t=>(0,r.createAttributeWithCacheKey)({min:t.attributes.getFloat("min",i.MIN_CLIP),max:t.attributes.getFloat("max",i.MAX_CLIP)}),e.clipV11=(t,n)=>{const r=D(t,n);return(0,e.clip)(t,[n[0]],r)};const D=(t,e)=>{if(e.length>=3&&(!t.session.isInitializer(e[1].dataId)||!t.session.isInitializer(e[2].dataId)))throw new Error("dynamic clip attributes are not allowed");const n=e.length>=3?e[1].numberData[0]:i.MIN_CLIP,s=e.length>=3?e[2].numberData[0]:i.MAX_CLIP;return(0,r.createAttributeWithCacheKey)({min:n,max:s})};e.ceil=(t,e)=>[t.run(P(t,e[0],h()),e)],e.cos=(t,e)=>[t.run(P(t,e[0],p()),e)],e.elu=(t,e,n)=>[t.run(P(t,e[0],f(n.alpha),n.cacheKey),e)],e.parseEluAttributes=t=>(0,r.createAttributeWithCacheKey)({alpha:t.attributes.getFloat("alpha",1)}),e.exp=(t,e)=>[t.run(P(t,e[0],g()),e)],e.floor=(t,e)=>[t.run(P(t,e[0],m()),e)],e.identity=(t,e)=>[t.run(P(t,e[0],b()),e)],e.leakyRelu=(t,e,n)=>[t.run(P(t,e[0],y(n.alpha),n.cacheKey),e)],e.parseLeakyReluAttributes=t=>(0,r.createAttributeWithCacheKey)({alpha:t.attributes.getFloat("alpha",.01)}),e.log=(t,e)=>[t.run(P(t,e[0],w()),e)],e.neg=(t,e)=>[t.run(P(t,e[0],v()),e)],e.not=(t,e)=>[t.run(P(t,e[0],x()),e)],e.relu=(t,e)=>[t.run(P(t,e[0],S()),e)],e.sigmoid=(t,e)=>[t.run(P(t,e[0],A()),e)],e.sin=(t,e)=>[t.run(P(t,e[0],T()),e)],e.sqrt=(t,e)=>[t.run(P(t,e[0],k()),e)],e.tan=(t,e)=>[t.run(P(t,e[0],O()),e)],e.tanh=(t,e)=>[t.run(P(t,e[0],E()),e)]},5611:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createUnpackProgramInfoLoader=e.createUnpackProgramInfo=void 0;const r=n(5060),i=n(2039),s=n(9390),o=n(2827),a={name:"unpack",inputNames:["A"],inputTypes:[i.TextureType.packed]};e.createUnpackProgramInfo=(t,e)=>{const n=e.dims.length,u=(0,o.getChannels)("rc",n),l=u.slice(-2),c=(0,s.getCoordsDataType)(n),d=(0,o.unpackFromChannel)(),h=0===e.dims.length?"":function(t,e){if(1===t)return"rc";let n="";for(let r=0;r<t;r++)n+=e[r],r<t-1&&(n+=",");return n}(n,u),p=n<=1?"rc":`vec2(${l.join(",")})`,f=`\n    ${d}\n    void main() {\n      ${c} rc = getOutputCoords();\n\n       // Sample the texture with the coords to get the rgba channel value.\n       vec4 packedInput = getA(${h});\n\n       ${(0,r.getGlsl)(t.session.backend.glContext.version).output} = vec4(getChannel(packedInput, ${p}), 0, 0, 0);\n     }\n   `;return Object.assign(Object.assign({},a),{hasMain:!0,output:{dims:e.dims,type:e.type,textureType:i.TextureType.unpacked},shaderSource:f})},e.createUnpackProgramInfoLoader=(t,n)=>Object.assign(Object.assign({},a),{get:()=>(0,e.createUnpackProgramInfo)(t,n)})},8428:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseUnsqueezeAttributes=e.unsqueezeV13=e.unsqueeze=void 0;const r=n(2517);e.unsqueeze=(t,e,n)=>{i(e);const s=r.ShapeUtil.unsqueezeShape(e[0].dims,n);return[t.reshapeUnpacked(e[0],s)]},e.unsqueezeV13=(t,n)=>(s(n),(0,e.unsqueeze)(t,[n[0]],Array.from(n[1].integerData))),e.parseUnsqueezeAttributes=t=>t.attributes.getInts("axes");const i=t=>{if(!t||1!==t.length)throw new Error("Unsqueeze requires 1 input.");if("string"===t[0].type)throw new Error("invalid input tensor types.")},s=t=>{if(!t||2!==t.length)throw new Error("Unsqueeze requires 2 inputs.");if("int32"!==t[1].type)throw new Error("Invalid input type.")}},9793:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.scalesValidation=e.validateInputs=e.parseUpsampleAttributes=e.parseUpsampleAttributesV9=e.parseUpsampleAttributesV7=e.upsample=void 0;const r=n(246),i=n(5060),s=n(2039),o={name:"Upsample",inputNames:["X"],inputTypes:[s.TextureType.unpacked]};e.upsample=(t,n,r)=>((0,e.validateInputs)(n,r),[t.run(Object.assign(Object.assign({},o),{cacheHint:r.cacheKey,get:()=>a(t,n,r)}),n)]),e.parseUpsampleAttributesV7=t=>(0,e.parseUpsampleAttributes)(t,7),e.parseUpsampleAttributesV9=t=>(0,e.parseUpsampleAttributes)(t,9),e.parseUpsampleAttributes=(t,n)=>{const i=n>=10,s=t.attributes.getString("mode","nearest");if("nearest"!==s&&"linear"!==s&&(n<11||"cubic"!==s))throw new Error(`unrecognized mode: ${s}`);let o=[];n<9&&(o=t.attributes.getFloats("scales"),(0,e.scalesValidation)(o,s,i));const a=t.attributes.getFloat("extrapolation_value",0),u=n>10?t.attributes.getString("coordinate_transformation_mode","half_pixel"):"asymmetric";if(-1===["asymmetric","pytorch_half_pixel","tf_half_pixel_for_nn","align_corners","tf_crop_and_resize","half_pixel"].indexOf(u))throw new Error(`coordinate_transform_mode '${u}' is not supported`);const l="tf_crop_and_resize"===u,c=l,d="nearest"===s&&n>=11?t.attributes.getString("nearest_mode","round_prefer_floor"):"";if(-1===["round_prefer_floor","round_prefer_ceil","floor","ceil",""].indexOf(d))throw new Error(`nearest_mode '${d}' is not supported`);const h=t.attributes.getFloat("cubic_coeff_a",-.75),p=0!==t.attributes.getInt("exclude_outside",0);if(p&&"cubic"!==s)throw new Error("exclude_outside can be set to 1 only when mode is CUBIC.");const f=n<11||"nearest"===s&&"asymmetric"===u&&"floor"===d;let g=0,m=0,_=0;return n>10?t.inputs.length>2?(g=1,m=2,_=3):(m=1,_=2):9===n&&(m=1),(0,r.createAttributeWithCacheKey)({opset:n,isResize:i,mode:s,scales:o,extrapolationValue:a,coordinateTransformMode:u,useExtrapolation:c,needRoiInput:l,nearestMode:d,cubicCoefficientA:h,excludeOutside:p,useNearest2xOptimization:f,roiInputIdx:g,scalesInputIdx:m,sizesInputIdx:_})};const a=(t,e,n)=>{const r=(0,i.getGlsl)(t.session.backend.glContext.version),[a,u]=t.calculateTextureWidthAndHeight(e[0].dims,s.TextureType.unpacked),l=e[0].dims.map(((t,e)=>Math.floor(t*n.scales[e]))),[c,d]=t.calculateTextureWidthAndHeight(l,s.TextureType.unpacked),h=l.length,p=new Array(h),f=new Array(h);let g=`\n      int output_pitches[${h}];\n      int input_pitches[${h}];\n      `;for(let t=h-1;t>=0;t--)p[t]=t===h-1?1:p[t+1]*l[t+1],f[t]=t===h-1?1:f[t+1]*e[0].dims[t+1],g+=`\n        output_pitches[${t}] = ${p[t]};\n        input_pitches[${t}] = ${f[t]};\n        `;const m=`\n      float getInputFloat(int index) {\n        vec2 coords = offsetToCoords(index, ${a}, ${u});\n        float value = getColorAsFloat(${r.texture2D}(X, coords));\n        return value;\n      }\n      `,_="nearest"===n.mode?`\n    ${m}\n    float process(int indices[${h}]) {\n      int input_index = 0;\n      int output_index = coordsToOffset(TexCoords, ${c}, ${d});\n\n      ${g}\n\n      int d, m;\n      for (int dim = 0; dim < ${h}; ++dim) {\n        d = output_index / output_pitches[dim];\n        m = output_index - d * output_pitches[dim];\n        output_index = m;\n\n        if (scales[dim] != 1 && d > 0) {\n          int d2 = d / scales[dim];\n          m = d - d2 * scales[dim];\n          d = d2;\n        }\n        input_index += input_pitches[dim] * d;\n      }\n\n      return getInputFloat(input_index);\n    }`:4===h?`\n    ${m}\n    float process(int indices[4]) {\n      int input_index = 0;\n      int output_index = coordsToOffset(TexCoords, ${c}, ${d});\n\n      ${g}\n\n      int m;\n      int index_of_dim0, index_of_dim1, index_of_dim2, index_of_dim3;\n      index_of_dim0 = output_index / output_pitches[0];\n      m = output_index - index_of_dim0 * output_pitches[0];\n      index_of_dim1 = m / output_pitches[1];\n      m = m - index_of_dim1 * output_pitches[1];\n      index_of_dim2 = m / output_pitches[2];\n      m = m - index_of_dim2 * output_pitches[2];\n      index_of_dim3 = m;\n\n      int index_of_input_dim2, index_of_input_dim3, x_offset, y_offset;\n      index_of_input_dim2 = index_of_dim2 / scales[2];\n      y_offset = index_of_dim2 - index_of_input_dim2 * scales[2];\n      index_of_input_dim3 = index_of_dim3 / scales[3];\n      x_offset = index_of_dim3 - index_of_input_dim3 * scales[3];\n\n      input_index = index_of_dim0 * input_pitches[0] +\n            index_of_dim1 * input_pitches[1] +\n            index_of_input_dim2 * input_pitches[2] +\n            index_of_input_dim3;\n\n      float x00 = getInputFloat(input_index);\n      float x10, x01, x11;\n\n      bool end_of_dim2 = false;\n      if (index_of_input_dim2 == (${e[0].dims[2]} - 1)) {\n        // It's the end in dimension 2\n        x01 = x00;\n        end_of_dim2 = true;\n      } else {\n        x01 = getInputFloat(input_index + input_pitches[2]);\n      }\n\n      if (index_of_input_dim3 == (input_pitches[2] - 1)) {\n        // It's the end in dimension 3\n        x10 = x00;\n        x11 = x01;\n      }\n      else {\n        x10 = getInputFloat(input_index + 1);\n        x11 = end_of_dim2 ? x10 : getInputFloat(input_index + input_pitches[2] + 1);\n      }\n\n      float y0 = x00 + float(y_offset) * (x01 - x00) / float(scales[2]);\n      float y1 = x10 + float(y_offset) * (x11 - x10) / float(scales[2]);\n      return y0 + float(x_offset) * (y1 - y0) / float(scales[3]);\n    }`:`\n    ${m}\n    float process(int indices[2]) {\n      int input_index = 0;\n      int output_index = coordsToOffset(TexCoords, ${c}, ${d});\n\n      ${g}\n\n      int m;\n      int index_of_dim0, index_of_dim1;\n      index_of_dim0 = output_index / output_pitches[0];\n      m = output_index - index_of_dim0 * output_pitches[0];\n      index_of_dim1 = m;\n\n      int index_of_input_dim0, index_of_input_dim1, x_offset, y_offset;\n      index_of_input_dim0 = index_of_dim0 / scales[0];\n      y_offset = index_of_dim0 - index_of_input_dim0 * scales[0];\n      index_of_input_dim1 = index_of_dim1 / scales[1];\n      x_offset = index_of_dim1 - index_of_input_dim1 * scales[1];\n\n      input_index = index_of_input_dim0 * input_pitches[0] + index_of_input_dim1;\n\n      float x00 = getInputFloat(input_index);\n      float x10, x01, x11;\n\n      bool end_of_dim0 = false;\n      if (index_of_input_dim0 == (${e[0].dims[0]} - 1)) {\n        // It's the end in dimension 0\n        x01 = x00;\n        end_of_dim0 = true;\n      } else {\n        x01 = getInputFloat(input_index + input_pitches[0]);\n      }\n\n      if (index_of_input_dim1 == (input_pitches[0] - 1)) {\n        // It's the end in dimension 1\n        x10 = x00;\n        x11 = x01;\n      }\n      else {\n        x10 = getInputFloat(input_index + 1);\n        x11 = end_of_dim0 ? x10 : getInputFloat(input_index + input_pitches[0] + 1);\n      }\n\n      float y0 = x00 + float(y_offset) * (x01 - x00) / float(scales[0]);\n      float y1 = x10 + float(y_offset) * (x11 - x10) / float(scales[0]);\n      return y0 + float(x_offset) * (y1 - y0) / float(scales[1]);\n    }`;return Object.assign(Object.assign({},o),{output:{dims:l,type:e[0].type,textureType:s.TextureType.unpacked},shaderSource:_,variables:[{name:"scales",type:"int",arrayLength:n.scales.length,data:n.scales.map((t=>Math.ceil(t)))}]})};e.validateInputs=(t,e)=>{if(!t||e.opset<9&&1!==t.length||e.opset>=9&&e.opset<11&&2!==t.length||e.opset>=11&&t.length<2)throw new Error("invalid inputs.");if(e.scales.length>0&&t[0].dims.length!==e.scales.length)throw new Error("Invalid input shape.");if("string"===t[0].type)throw new Error("Invalid input tensor types.")},e.scalesValidation=(t,e,n)=>{if(n){for(const e of t)if(e<=0)throw new Error("Scale value should be greater than 0.")}else for(const e of t)if(e<1)throw new Error("Scale value should be greater than or equal to 1.");if(!("linear"!==e&&"cubic"!==e||2===t.length||4===t.length&&1===t[0]&&1===t[1]))throw new Error(`'Linear' mode and 'Cubic' mode only support 2-D inputs ('Bilinear', 'Bicubic')         or 4-D inputs with the corresponding outermost 2 scale values being 1         in the ${n?"Resize":"Upsample"} opeartor.`)}},1958:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProgramManager=void 0;const r=n(1670),i=n(6231),s=n(8879),o=n(5060);e.ProgramManager=class{constructor(t,e,n){this.profiler=t,this.glContext=e,this.textureLayoutStrategy=n,this.repo=new Map,this.attributesBound=!1}getArtifact(t){return this.repo.get(t)}setArtifact(t,e){this.repo.set(t,e)}run(t,e,n){var r;this.profiler.event("op",`ProgramManager.run ${null!==(r=t.programInfo.name)&&void 0!==r?r:"unknown kernel"}`,(()=>{var r;const s=this.glContext.gl,o=t.program;s.useProgram(o);try{this.bindOutput(n),this.attributesBound||this.bindAttributes(t.attribLocations),this.bindUniforms(t.uniformLocations,null!==(r=t.programInfo.variables)&&void 0!==r?r:[],e)}catch(e){throw i.Logger.error("ProgramManager",t.programInfo.shaderSource),e}this.profiler.event("backend","GlContext.draw()",(()=>{this.glContext.draw()}))}),this.glContext)}dispose(){this.vertexShader&&this.glContext.deleteShader(this.vertexShader),this.repo.forEach((t=>this.glContext.deleteProgram(t.program)))}build(t,e,n){return this.profiler.event("backend","ProgramManager.build",(()=>{const r=new s.GlslPreprocessor(this.glContext,t,e,n),i=r.preprocess(),o=this.compile(i);return{programInfo:t,program:o,uniformLocations:this.getUniformLocations(o,r.context.programInfo.inputNames,r.context.programInfo.variables),attribLocations:this.getAttribLocations(o)}}))}compile(t){if(!this.vertexShader){i.Logger.verbose("ProrgramManager","Compiling and caching Vertex shader for the first time");const t=(0,o.getVertexShaderSource)(this.glContext.version);this.vertexShader=this.glContext.compileShader(t,this.glContext.gl.VERTEX_SHADER)}r.env.debug&&i.Logger.verbose("ProrgramManager",`FragShader:\n${t}\n`);const e=this.glContext.compileShader(t,this.glContext.gl.FRAGMENT_SHADER),n=this.glContext.createProgram(this.vertexShader,e);return this.glContext.deleteShader(e),n}bindOutput(t){const e=t.width,n=t.height;i.Logger.verbose("ProrgramManager",`Binding output texture to Framebuffer: w/h=${e}/${n}, shape=${t.shape}, type=${t.tensor.type}`),this.glContext.attachFramebuffer(t.texture,e,n)}bindAttributes(t){const e=t.position,n=t.textureCoord;this.glContext.setVertexAttributes(e,n),this.attributesBound=!0}bindUniforms(t,e,n){var r;const i=this.glContext.gl;let s=0;for(const{name:o,type:a,location:u,arrayLength:l}of t){const t=null===(r=e.find((t=>t.name===o)))||void 0===r?void 0:r.data;if("sampler2D"!==a&&!t)throw new Error(`variable '${o}' does not have data defined in program info`);switch(a){case"sampler2D":this.bindTexture(n[s],u,s),s++;break;case"float":l?i.uniform1fv(u,t):i.uniform1f(u,t);break;case"int":l?i.uniform1iv(u,t):i.uniform1i(u,t);break;default:throw new Error(`Uniform not implemented: ${a}`)}}}bindTexture(t,e,n){this.glContext.bindTextureToUniform(t.texture,n,e)}getAttribLocations(t){return{position:this.getAttribLocation(t,"position"),textureCoord:this.getAttribLocation(t,"textureCoord")}}getUniformLocations(t,e,n){const r=[];if(e)for(const n of e)r.push({name:n,type:"sampler2D",location:this.getUniformLocation(t,n)});if(n)for(const e of n)r.push(Object.assign(Object.assign({},e),{location:this.getUniformLocation(t,e.name)}));return r}getUniformLocation(t,e){const n=this.glContext.gl.getUniformLocation(t,e);if(null===n)throw new Error(`Uniform ${e} not found.`);return n}getAttribLocation(t,e){return this.glContext.gl.getAttribLocation(t,e)}}},6416:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebGLSessionHandler=void 0;const r=n(6231),i=n(1047),s=n(8316),o=n(1640),a=n(1958),u=n(7859),l=n(5702);e.WebGLSessionHandler=class{constructor(t,e){this.backend=t,this.context=e,this.layoutStrategy=new u.PreferLogicalStrategy(t.glContext.maxTextureSize),this.programManager=new a.ProgramManager(this.context.profiler,t.glContext,this.layoutStrategy),this.textureManager=new l.TextureManager(t.glContext,this.layoutStrategy,this.context.profiler,{reuseTextures:"full"===t.textureCacheMode}),this.packedTextureDataCache=new Map,this.unpackedTextureDataCache=new Map,this.pack=t.pack,this.pack2unpackMap=new Map,this.unpack2packMap=new Map}createInferenceHandler(){return new s.WebGLInferenceHandler(this)}onGraphInitialized(t){const e=t.getValues().filter((t=>-1===t.from&&t.tensor)).map((t=>t.tensor.dataId));this.initializers=new Set(e)}isInitializer(t){return!!this.initializers&&this.initializers.has(t)}addInitializer(t){this.initializers.add(t)}getTextureData(t,e){return e?this.packedTextureDataCache.get(t):this.unpackedTextureDataCache.get(t)}setTextureData(t,e,n=!1){r.Logger.verbose("WebGLSessionHandler","Storing Texture data in cache"),n?this.packedTextureDataCache.set(t,e):this.unpackedTextureDataCache.set(t,e)}dispose(){this.programManager.dispose(),this.textureManager.clearActiveTextures(),this.packedTextureDataCache.forEach((t=>this.textureManager.releaseTexture(t,!0))),this.packedTextureDataCache=new Map,this.unpackedTextureDataCache.forEach((t=>this.textureManager.releaseTexture(t,!0))),this.unpackedTextureDataCache=new Map}resolve(t,e,n){const r=(0,i.resolveOperator)(t,e,o.WEBGL_OP_RESOLVE_RULES);return{impl:r.opImpl,context:r.opInit?r.opInit(t,n):t}}}},7769:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Uint8DataEncoder=e.RGBAFloatDataEncoder=e.RedFloat32DataEncoder=void 0;const r=n(6231);e.RedFloat32DataEncoder=class{constructor(t,e=1){if(1===e)this.internalFormat=t.R32F,this.format=t.RED,this.textureType=t.FLOAT,this.channelSize=e;else{if(4!==e)throw new Error(`Invalid number of channels: ${e}`);this.internalFormat=t.RGBA32F,this.format=t.RGBA,this.textureType=t.FLOAT,this.channelSize=e}}encode(t,e){let n,i;return t.constructor!==Float32Array&&(r.Logger.warning("Encoder","data was not of type Float32; creating new Float32Array"),i=new Float32Array(t)),e*this.channelSize>t.length?(r.Logger.warning("Encoder","Source data too small. Allocating larger array"),i=t,n=this.allocate(e*this.channelSize),i.forEach(((t,e)=>n[e]=t))):(i=t,n=i),n}allocate(t){return new Float32Array(4*t)}decode(t,e){return 1===this.channelSize?t.filter(((t,e)=>e%4==0)).subarray(0,e):t.subarray(0,e)}},e.RGBAFloatDataEncoder=class{constructor(t,e=1,n){if(1!==e&&4!==e)throw new Error(`Invalid number of channels: ${e}`);this.internalFormat=t.RGBA,this.format=t.RGBA,this.channelSize=e,this.textureType=n||t.FLOAT}encode(t,e){let n=t;return 1===this.channelSize&&(r.Logger.verbose("Encoder","Exploding into a larger array"),n=this.allocate(e),t.forEach(((t,e)=>n[4*e]=t))),n}allocate(t){return new Float32Array(4*t)}decode(t,e){return 1===this.channelSize?t.filter(((t,e)=>e%4==0)).subarray(0,e):t.subarray(0,e)}},e.Uint8DataEncoder=class{constructor(t,e=1){if(this.channelSize=4,1===e)this.internalFormat=t.ALPHA,this.format=t.ALPHA,this.textureType=t.UNSIGNED_BYTE,this.channelSize=e;else{if(4!==e)throw new Error(`Invalid number of channels: ${e}`);this.internalFormat=t.RGBA,this.format=t.RGBA,this.textureType=t.UNSIGNED_BYTE,this.channelSize=e}}encode(t,e){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}allocate(t){return new Uint8Array(t*this.channelSize)}decode(t,e){if(t instanceof Uint8Array)return t.subarray(0,e);throw new Error(`Invalid array type: ${t.constructor}`)}}},7859:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getBatchDim=e.sizeToSquarishShape=e.getRowsCols=e.sizeFromShape=e.isInt=e.parseAxisParam=e.squeezeShape=e.PreferLogicalStrategy=e.AlwaysKeepOriginalSizeStrategy=void 0;const r=n(6231),i=n(2517);function s(t,e){const n=[],r=[],i=null!=e&&Array.isArray(e)&&0===e.length,s=null==e||i?null:o(e,t).sort();let a=0;for(let e=0;e<t.length;++e){if(null!=s){if(s[a]===e&&1!==t[e])throw new Error(`Can't squeeze axis ${e} since its dim '${t[e]}' is not 1`);(null==s[a]||s[a]>e)&&1===t[e]&&(n.push(t[e]),r.push(e)),s[a]<=e&&a++}1!==t[e]&&(n.push(t[e]),r.push(e))}return{newShape:n,keptDims:r}}function o(t,e){const n=e.length;return t=null==t?e.map(((t,e)=>e)):[].concat(t),(0,i.assert)(t.every((t=>t>=-n&&t<n)),(()=>`All values in axis param must be in range [-${n}, ${n}) but got axis ${t}`)),(0,i.assert)(t.every(a),(()=>`All values in axis param must be integers but got axis ${t}`)),t.map((t=>t<0?n+t:t))}function a(t){return t%1==0}function u(t){if(0===t.length)return 1;let e=t[0];for(let n=1;n<t.length;n++)e*=t[n];return e}function l(t){const e=Math.ceil(Math.sqrt(t));return[e,Math.ceil(t/e)]}e.AlwaysKeepOriginalSizeStrategy=class{constructor(t){this.maxTextureSize=t}computeTextureWH(t,e){if(0===t.length)return[1,1];const n=this.maxTextureSize;if(e&&void 0!==e.breakAxis){const i=e.breakAxis>=t.length?1:t.slice(e.breakAxis).reduce(((t,e)=>t*e)),s=e.breakAxis<=0?1:t.slice(0,e.breakAxis).reduce(((t,e)=>t*e));if(!(i>n||s>n))return[i,s];r.Logger.verbose("TextureLayout",`Given width/height preferences were unattainable: shape:${t}, breakAxis:${e.breakAxis}`)}const i=t.reduce(((t,e)=>t*e));let s=Math.floor(Math.sqrt(i));for(;s<n&&s<i&&i%s!=0;s++);if(s>=n||i%s!=0)throw new Error(`The given dimensions are outside this GPU's boundaries: ${t}`);return[s,i/s]}},e.PreferLogicalStrategy=class{constructor(t){this.maxTextureSize=t}computeTextureWH(t,e){const n=this.computeTexture(t,e);return e&&e.isPacked&&(n[0]/=2,n[1]/=2),e&&e.reverseWH?[n[1],n[0]]:n}computeTexture(t,e){const n=e&&e.isPacked;if(0===t.length)return n?[2,2]:[1,1];let i=this.maxTextureSize;if(e&&void 0!==e.breakAxis){const n=e.breakAxis>=t.length?1:t.slice(e.breakAxis).reduce(((t,e)=>t*e)),s=e.breakAxis<=0?1:t.slice(0,e.breakAxis).reduce(((t,e)=>t*e));if(!(n>i||s>i))return[n,s];r.Logger.verbose("TextureLayout",`Given width/height preferences were unattainable: shape:${t}, breakAxis:${e.breakAxis}`)}let o=t.slice(0);if(n&&(i*=2,o=o.map(((t,e)=>e>=o.length-2?o[e]%2==0?o[e]:o[e]+1:o[e])),1===o.length&&(o=[2,o[0]])),2!==o.length){const t=s(o);o=t.newShape}const a=u(o);return o.length<=1&&a<=i?[1,a]:2===o.length&&o[0]<=i&&o[1]<=i?o:3===o.length&&o[0]*o[1]<=i&&o[2]<=i?[o[0]*o[1],o[2]]:3===o.length&&o[0]<=i&&o[1]*o[2]<=i?[o[0],o[1]*o[2]]:4===o.length&&o[0]*o[1]*o[2]<=i&&o[3]<=i?[o[0]*o[1]*o[2],o[3]]:4===o.length&&o[0]<=i&&o[1]*o[2]*o[3]<=i?[o[0],o[1]*o[2]*o[3]]:n?l(a/4).map((t=>2*t)):l(a)}},e.squeezeShape=s,e.parseAxisParam=o,e.isInt=a,e.sizeFromShape=u,e.getRowsCols=function(t){if(0===t.length)throw Error("Cannot get rows and columns of an empty shape array.");return[t.length>1?t[t.length-2]:1,t[t.length-1]]},e.sizeToSquarishShape=l,e.getBatchDim=function(t,e=2){return u(t.slice(0,t.length-e))}},4057:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTextureLayoutFromShape=e.calculateTextureWidthAndHeight=e.createTextureLayoutFromTextureType=void 0;const r=n(2517),i=n(2039);e.createTextureLayoutFromTextureType=(t,n,r)=>{const s=r===i.TextureType.unpacked||r===i.TextureType.unpackedReversed?1:4,o=r===i.TextureType.packed,a=r===i.TextureType.unpackedReversed||r===i.TextureType.packed,u=r===i.TextureType.packedLastDimension?n.length-1:void 0,l=r===i.TextureType.packedLastDimension?n.map(((t,e)=>e===n.length-1?4*t:t)):void 0;return(0,e.createTextureLayoutFromShape)(t,n,s,l,{isPacked:o,reverseWH:a,breakAxis:u})},e.calculateTextureWidthAndHeight=(t,n,r)=>{const i=(0,e.createTextureLayoutFromTextureType)(t,n,r);return[i.width,i.height]},e.createTextureLayoutFromShape=(t,e,n=1,i,s)=>{const o=!(!s||!s.isPacked),[a,u]=t.computeTextureWH(o&&i||e,s),l=e.length;let c=e.slice(0);if(0===l&&(c=[1]),1===n)i=e;else if(o){if(4!==n)throw new Error("a packed texture must be 4-channel");i=e,l>0&&(c[l-1]=Math.ceil(c[l-1]/2)),l>1&&(c[l-2]=Math.ceil(c[l-2]/2))}else if(!i)throw new Error("Unpacked shape is needed when using channels > 1");return{width:a,height:u,channels:n,isPacked:o,shape:c,strides:r.ShapeUtil.computeStrides(c),unpackedShape:i,reversedWH:s&&s.reverseWH}}},5702:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextureManager=void 0;const r=n(6231);e.TextureManager=class{constructor(t,e,n,r){this.glContext=t,this.layoutStrategy=e,this.profiler=n,this.config=r,this.pendingRead=new Map,r.reuseTextures&&(this.inUseTextures=new Map,this.idleTextures=new Map,this.textureLookup=new Map)}createTextureFromLayout(t,e,n,i){const s=this.toEncoderType(t),o=this.glContext.getEncoder(s,e.channels||1,i);if(e.isPacked&&1===i)throw new Error("not implemented");const a=e.width,u=e.height;let l,c;if(this.config.reuseTextures){l=`${a}x${u}_${o.format}_${o.internalFormat}_${o.textureType}`,c=this.inUseTextures.get(l),c||(c=[],this.inUseTextures.set(l,c));const e=this.idleTextures.get(l);if(e&&e.length>0){const r=e.pop();return c.push(r),1===i&&this.glContext.updateTexture(r,a,u,o,this.toTextureData(t,n)),r}}r.Logger.verbose("TextureManager",`Creating new texture of size ${e.width}x${e.height}`);const d=this.glContext.allocateTexture(a,u,o,this.toTextureData(t,n));return this.config.reuseTextures&&(c.push(d),this.textureLookup.set(d,l)),d}readTexture(t,e,n){return n||(n=1),this.profiler.event("backend","TextureManager.readTexture",(()=>{const r=t.shape.reduce(((t,e)=>t*e))*n,i=this.glContext.readTexture(t.texture,t.width,t.height,r,this.toEncoderType(e),n);return this.toTensorData(e,i)}))}async readTextureAsync(t,e,n){const r=t.tensor.dataId;if(n||(n=1),this.pendingRead.has(r)){const t=this.pendingRead.get(r);return new Promise((e=>null==t?void 0:t.push(e)))}return this.profiler.event("backend","TextureManager.readTextureAsync",(async()=>{this.pendingRead.set(r,[]);const i=t.shape.reduce(((t,e)=>t*e))*n;await this.glContext.createAndWaitForFence();const s=this.glContext.readTexture(t.texture,t.width,t.height,i,this.toEncoderType(e),n),o=this.toTensorData(e,s),a=this.pendingRead.get(r);return this.pendingRead.delete(r),null==a||a.forEach((t=>t(o))),o}))}readUint8TextureAsFloat(t){return this.profiler.event("backend","TextureManager.readUint8TextureAsFloat",(()=>{const e=t.shape.reduce(((t,e)=>t*e)),n=this.glContext.readTexture(t.texture,t.width,t.height,4*e,"byte",4);return new Float32Array(n.buffer,n.byteOffset,e)}))}releaseTexture(t,e){let n;if(this.config.reuseTextures&&(n=this.textureLookup.get(t.texture),n)){e&&this.textureLookup.delete(n);const r=this.inUseTextures.get(n);if(r){const e=r.indexOf(t.texture);if(-1!==e){r.splice(e,1);let i=this.idleTextures.get(n);i||(i=[],this.idleTextures.set(n,i)),i.push(t.texture)}}}n&&!e||(r.Logger.verbose("TextureManager",`Deleting texture of size ${t.width}x${t.height}`),this.glContext.deleteTexture(t.texture))}toTensorData(t,e){switch(t){case"int16":return e instanceof Int16Array?e:Int16Array.from(e);case"int32":return e instanceof Int32Array?e:Int32Array.from(e);case"int8":return e instanceof Int8Array?e:Int8Array.from(e);case"uint16":return e instanceof Uint16Array?e:Uint16Array.from(e);case"uint32":return e instanceof Uint32Array?e:Uint32Array.from(e);case"uint8":case"bool":return e instanceof Uint8Array?e:Uint8Array.from(e);case"float32":return e instanceof Float32Array?e:Float32Array.from(e);case"float64":return e instanceof Float64Array?e:Float64Array.from(e);default:throw new Error(`TensorData type ${t} is not supported`)}}toTextureData(t,e){if(e)return e instanceof Float32Array?e:new Float32Array(e)}toEncoderType(t){return"float"}clearActiveTextures(){this.glContext.clearActiveTextures()}}},2039:(t,e)=>{"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.TextureType=void 0,(n=e.TextureType||(e.TextureType={}))[n.unpacked=0]="unpacked",n[n.unpackedReversed=1]="unpackedReversed",n[n.packed=2]="packed",n[n.downloadUint8AsFloat=3]="downloadUint8AsFloat",n[n.packedLastDimension=4]="packedLastDimension"},9390:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getGlChannels=e.getCoordsDataType=e.getSqueezedParams=e.squeezeInputShape=e.generateShaderFuncNameFromInputSamplerNameAtOutCoords=e.generateShaderFuncNameFromInputSamplerName=e.repeatedTry=e.getPackedShape=void 0;const r=n(2517);e.getPackedShape=function(t){const e=t.length;return t.slice(0,e-1).concat(t[e-1]/4)},e.repeatedTry=async function(t,e=(t=>0),n){return new Promise(((r,i)=>{let s=0;const o=()=>{if(t())return void r();s++;const a=e(s);null!=n&&s>=n?i():setTimeout(o,a)};o()}))},e.generateShaderFuncNameFromInputSamplerName=function(t){return(0,r.assert)(void 0!==t&&0!==t.length,(()=>"empty string found for sampler name")),"get"+t.charAt(0).toUpperCase()+t.slice(1)},e.generateShaderFuncNameFromInputSamplerNameAtOutCoords=function(t){return(0,r.assert)(void 0!==t&&0!==t.length,(()=>"empty string found for sampler name")),"get"+t.charAt(0).toUpperCase()+t.slice(1)+"AtOutCoords"},e.squeezeInputShape=function(t,e){let n=JSON.parse(JSON.stringify(t));return n=e,n},e.getSqueezedParams=function(t,e){return e.map((e=>t[e])).join(", ")},e.getCoordsDataType=function(t){if(t<=1)return"int";if(2===t)return"ivec2";if(3===t)return"ivec3";if(4===t)return"ivec4";if(5===t)return"ivec5";if(6===t)return"ivec6";throw Error(`GPU for rank ${t} is not yet supported`)},e.getGlChannels=function(t=6){return["x","y","z","w","u","v"].slice(0,t)}},7305:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createNewWebGLContext=e.createWebGLContext=void 0;const r=n(6231),i=n(1713),s={};function o(t){const e=function(){if("undefined"==typeof document){if("undefined"==typeof OffscreenCanvas)throw new TypeError("failed to create canvas: OffscreenCanvas is not supported");return new OffscreenCanvas(1,1)}const t=document.createElement("canvas");return t.width=1,t.height=1,t}();let n;const s={alpha:!1,depth:!1,antialias:!1,stencil:!1,preserveDrawingBuffer:!1,premultipliedAlpha:!1,failIfMajorPerformanceCaveat:!1};if((!t||"webgl2"===t)&&(n=e.getContext("webgl2",s),n))try{return new i.WebGLContext(n,2)}catch(t){r.Logger.warning("GlContextFactory",`failed to create WebGLContext using contextId 'webgl2'. Error: ${t}`)}if((!t||"webgl"===t)&&(n=e.getContext("webgl",s)||e.getContext("experimental-webgl",s),n))try{return new i.WebGLContext(n,1)}catch(t){r.Logger.warning("GlContextFactory",`failed to create WebGLContext using contextId 'webgl' or 'experimental-webgl'. Error: ${t}`)}throw new Error("WebGL is not supported")}e.createWebGLContext=function t(e){let n;e&&"webgl2"!==e||!("webgl2"in s)?e&&"webgl"!==e||!("webgl"in s)||(n=s.webgl):n=s.webgl2,n=n||o(e),e=e||1===n.version?"webgl":"webgl2";const r=n.gl;return s[e]=n,r.isContextLost()?(delete s[e],t(e)):(r.disable(r.DEPTH_TEST),r.disable(r.STENCIL_TEST),r.disable(r.BLEND),r.disable(r.DITHER),r.disable(r.POLYGON_OFFSET_FILL),r.disable(r.SAMPLE_COVERAGE),r.enable(r.SCISSOR_TEST),r.enable(r.CULL_FACE),r.cullFace(r.BACK),n)},e.createNewWebGLContext=o},1713:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),s=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.WebGLContext=e.linearSearchLastTrue=void 0;const o=n(1670),a=s(n(7769)),u=n(9390);function l(t){let e=0;for(;e<t.length&&t[e]();++e);return e-1}e.linearSearchLastTrue=l,e.WebGLContext=class{constructor(t,e){this.frameBufferBound=!1,this.itemsToPoll=[],this.gl=t,this.version=e,this.getExtensions(),this.vertexbuffer=this.createVertexbuffer(),this.framebuffer=this.createFramebuffer(),this.queryVitalParameters()}allocateTexture(t,e,n,r){const i=this.gl,s=i.createTexture();i.bindTexture(i.TEXTURE_2D,s),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE);const o=r?n.encode(r,t*e):null;return i.texImage2D(i.TEXTURE_2D,0,n.internalFormat,t,e,0,n.format,n.textureType,o),this.checkError(),s}updateTexture(t,e,n,r,i){const s=this.gl;s.bindTexture(s.TEXTURE_2D,t);const o=r.encode(i,e*n);s.texSubImage2D(s.TEXTURE_2D,0,0,0,e,n,r.format,r.textureType,o),this.checkError()}attachFramebuffer(t,e,n){const r=this.gl;r.bindTexture(r.TEXTURE_2D,t),r.bindFramebuffer(r.FRAMEBUFFER,this.framebuffer),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0),this.checkError(),r.viewport(0,0,e,n),r.scissor(0,0,e,n)}readTexture(t,e,n,r,i,s){const o=this.gl;s||(s=1),this.frameBufferBound||this.attachFramebuffer(t,e,n);const a=this.getEncoder(i,s),u=a.allocate(e*n);return o.bindTexture(o.TEXTURE_2D,t),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,t,0),o.readPixels(0,0,e,n,o.RGBA,a.textureType,u),this.checkError(),a.decode(u,r)}isFramebufferReady(){return!0}getActiveTexture(){const t=this.gl;return"TEXTURE"+(t.getParameter(this.gl.ACTIVE_TEXTURE)-t.TEXTURE0)}getTextureBinding(){return this.gl.getParameter(this.gl.TEXTURE_BINDING_2D)}getFramebufferBinding(){return this.gl.getParameter(this.gl.FRAMEBUFFER_BINDING)}setVertexAttributes(t,e){const n=this.gl;n.vertexAttribPointer(t,3,n.FLOAT,!1,20,0),n.enableVertexAttribArray(t),-1!==e&&(n.vertexAttribPointer(e,2,n.FLOAT,!1,20,12),n.enableVertexAttribArray(e)),this.checkError()}createProgram(t,e){const n=this.gl,r=n.createProgram();return n.attachShader(r,t),n.attachShader(r,e),n.linkProgram(r),r}compileShader(t,e){const n=this.gl,r=n.createShader(e);if(!r)throw new Error(`createShader() returned null with type ${e}`);if(n.shaderSource(r,t),n.compileShader(r),!1===n.getShaderParameter(r,n.COMPILE_STATUS))throw new Error(`Failed to compile shader: ${n.getShaderInfoLog(r)}\nShader source:\n${t}`);return r}deleteShader(t){this.gl.deleteShader(t)}bindTextureToUniform(t,e,n){const r=this.gl;r.activeTexture(r.TEXTURE0+e),this.checkError(),r.bindTexture(r.TEXTURE_2D,t),this.checkError(),r.uniform1i(n,e),this.checkError()}draw(){this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4),this.checkError()}checkError(){if(o.env.debug){const t=this.gl,e=t.getError();let n="";switch(e){case t.NO_ERROR:return;case t.INVALID_ENUM:n="INVALID_ENUM";break;case t.INVALID_VALUE:n="INVALID_VALUE";break;case t.INVALID_OPERATION:n="INVALID_OPERATION";break;case t.INVALID_FRAMEBUFFER_OPERATION:n="INVALID_FRAMEBUFFER_OPERATION";break;case t.OUT_OF_MEMORY:n="OUT_OF_MEMORY";break;case t.CONTEXT_LOST_WEBGL:n="CONTEXT_LOST_WEBGL";break;default:n=`Unknown WebGL Error: ${e.toString(16)}`}throw new Error(n)}}deleteTexture(t){this.gl.deleteTexture(t)}deleteProgram(t){this.gl.deleteProgram(t)}getEncoder(t,e,n=0){if(2===this.version)return new a.RedFloat32DataEncoder(this.gl,e);switch(t){case"float":return 1===n||this.isRenderFloat32Supported?new a.RGBAFloatDataEncoder(this.gl,e):new a.RGBAFloatDataEncoder(this.gl,e,this.textureHalfFloatExtension.HALF_FLOAT_OES);case"int":throw new Error("not implemented");case"byte":return new a.Uint8DataEncoder(this.gl,e);default:throw new Error(`Invalid dataType: ${t}`)}}clearActiveTextures(){const t=this.gl;for(let e=0;e<this.maxTextureImageUnits;++e)t.activeTexture(t.TEXTURE0+e),t.bindTexture(t.TEXTURE_2D,null)}dispose(){if(this.disposed)return;const t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteFramebuffer(this.framebuffer),t.bindBuffer(t.ARRAY_BUFFER,null),t.deleteBuffer(this.vertexbuffer),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),t.finish(),this.disposed=!0}createDefaultGeometry(){return new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0])}createVertexbuffer(){const t=this.gl,e=t.createBuffer();if(!e)throw new Error("createBuffer() returned null");const n=this.createDefaultGeometry();return t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,n,t.STATIC_DRAW),this.checkError(),e}createFramebuffer(){const t=this.gl.createFramebuffer();if(!t)throw new Error("createFramebuffer returned null");return t}queryVitalParameters(){const t=this.gl;if(this.isFloatTextureAttachableToFrameBuffer=this.checkFloatTextureAttachableToFrameBuffer(),this.isRenderFloat32Supported=this.checkRenderFloat32(),this.isFloat32DownloadSupported=this.checkFloat32Download(),1===this.version&&!this.textureHalfFloatExtension&&!this.isRenderFloat32Supported)throw new Error("both float32 and float16 TextureType are not supported");this.isBlendSupported=!this.isRenderFloat32Supported||this.checkFloat32Blend(),this.maxTextureSize=t.getParameter(t.MAX_TEXTURE_SIZE),this.maxTextureImageUnits=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),this.version}getExtensions(){2===this.version?(this.colorBufferFloatExtension=this.gl.getExtension("EXT_color_buffer_float"),this.disjointTimerQueryWebgl2Extension=this.gl.getExtension("EXT_disjoint_timer_query_webgl2")):(this.textureFloatExtension=this.gl.getExtension("OES_texture_float"),this.textureHalfFloatExtension=this.gl.getExtension("OES_texture_half_float"))}checkFloatTextureAttachableToFrameBuffer(){const t=this.gl,e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);const n=2===this.version?t.RGBA32F:t.RGBA;t.texImage2D(t.TEXTURE_2D,0,n,1,1,0,t.RGBA,t.FLOAT,null);const r=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0);const i=t.checkFramebufferStatus(t.FRAMEBUFFER)===t.FRAMEBUFFER_COMPLETE;return t.bindTexture(t.TEXTURE_2D,null),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteTexture(e),t.deleteFramebuffer(r),i}checkRenderFloat32(){if(2===this.version){if(!this.colorBufferFloatExtension)return!1}else if(!this.textureFloatExtension)return!1;return this.isFloatTextureAttachableToFrameBuffer}checkFloat32Download(){if(2===this.version){if(!this.colorBufferFloatExtension)return!1}else{if(!this.textureFloatExtension)return!1;if(!this.gl.getExtension("WEBGL_color_buffer_float"))return!1}return this.isFloatTextureAttachableToFrameBuffer}checkFloat32Blend(){const t=this.gl;let e,n,r,i,s;try{e=t.createTexture(),n=t.createFramebuffer(),t.bindTexture(t.TEXTURE_2D,e);const o=2===this.version?t.RGBA32F:t.RGBA;return t.texImage2D(t.TEXTURE_2D,0,o,1,1,0,t.RGBA,t.FLOAT,null),t.bindFramebuffer(t.FRAMEBUFFER,n),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),t.enable(t.BLEND),r=t.createShader(t.VERTEX_SHADER),!!r&&(t.shaderSource(r,"void main(){}"),t.compileShader(r),i=t.createShader(t.FRAGMENT_SHADER),!!i&&(t.shaderSource(i,"precision highp float;void main(){gl_FragColor=vec4(0.5);}"),t.compileShader(i),s=t.createProgram(),!!s&&(t.attachShader(s,r),t.attachShader(s,i),t.linkProgram(s),t.useProgram(s),t.drawArrays(t.POINTS,0,1),t.getError()===t.NO_ERROR)))}finally{t.disable(t.BLEND),s&&t.deleteProgram(s),r&&t.deleteShader(r),i&&t.deleteShader(i),n&&(t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteFramebuffer(n)),e&&(t.bindTexture(t.TEXTURE_2D,null),t.deleteTexture(e))}}beginTimer(){if(2===this.version&&this.disjointTimerQueryWebgl2Extension){const t=this.gl,e=this.disjointTimerQueryWebgl2Extension,n=t.createQuery();return t.beginQuery(e.TIME_ELAPSED_EXT,n),n}throw new Error("WebGL1 profiling currently not supported.")}endTimer(){if(2!==this.version||!this.disjointTimerQueryWebgl2Extension)throw new Error("WebGL1 profiling currently not supported");{const t=this.gl,e=this.disjointTimerQueryWebgl2Extension;t.endQuery(e.TIME_ELAPSED_EXT)}}isTimerResultAvailable(t){let e=!1,n=!1;if(2!==this.version||!this.disjointTimerQueryWebgl2Extension)throw new Error("WebGL1 profiling currently not supported");{const r=this.gl,i=this.disjointTimerQueryWebgl2Extension;e=r.getQueryParameter(t,r.QUERY_RESULT_AVAILABLE),n=r.getParameter(i.GPU_DISJOINT_EXT)}return e&&!n}getTimerResult(t){let e=0;if(2!==this.version)throw new Error("WebGL1 profiling currently not supported");{const n=this.gl;e=n.getQueryParameter(t,n.QUERY_RESULT),n.deleteQuery(t)}return e/1e6}async waitForQueryAndGetTime(t){return await(0,u.repeatedTry)((()=>this.isTimerResultAvailable(t))),this.getTimerResult(t)}async createAndWaitForFence(){const t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e;const n=t,r=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);return t.flush(),e=null===r?()=>!0:()=>{const t=n.clientWaitSync(r,0,0);return t===n.ALREADY_SIGNALED||t===n.CONDITION_SATISFIED},{query:r,isFencePassed:e}}async pollFence(t){return new Promise((e=>{this.addItemToPoll((()=>t.isFencePassed()),(()=>e()))}))}pollItems(){const t=l(this.itemsToPoll.map((t=>t.isDoneFn)));for(let e=0;e<=t;++e){const{resolveFn:t}=this.itemsToPoll[e];t()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}async addItemToPoll(t,e){this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1||await(0,u.repeatedTry)((()=>(this.pollItems(),0===this.itemsToPoll.length)))}}},1036:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ExecutionPlan=void 0;const r=n(6231);class i{constructor(t,e){this.op=t,this.node=e}}e.ExecutionPlan=class{constructor(t,e,n){this.graph=t,this.profiler=n,this.initialize(e)}initialize(t){this.profiler.event("session","ExecutionPlan.initialize",(()=>{const e=this.graph.getNodes();if(e.length!==t.length)throw new Error("The size of nodes and OPs do not match.");this._ops=t.map(((t,n)=>new i(t,e[n]))),this.reset(),this._starter=[],this._ops.forEach(((t,e)=>{let n=!0;for(const e of t.node.inputs)if(!this._values[e]&&-1===this.graph.getInputIndices().indexOf(e)){n=!1;break}n&&this._starter.push(e)}))}))}reset(){this._values=this.graph.getValues().map((t=>t.tensor))}async execute(t,e){return this.profiler.event("session","ExecutionPlan.execute",(async()=>{this.reset();const n=t.createInferenceHandler(),i=this.graph.getInputIndices();if(e.length!==i.length)throw new Error(`number of input tensors don't match the number of inputs to the model: actual: ${e.length} expected: ${i.length}`);e.forEach(((t,e)=>{const n=i[e];this._values[n]=t}));const s=this._starter.slice(0),o=this.graph.getValues(),a=this.graph.getNodes();let u=0;for(;u<s.length;){const t=s[u++],e=this._ops[t],i=e.node.inputs.map((t=>this._values[t]));if(-1!==i.indexOf(void 0))throw new Error(`unresolved input detected: op: ${e.node}`);const l=i;r.Logger.verbose("ExecPlan",`Runing op:${e.node.name} (${l.map(((t,n)=>`'${e.node.inputs[n]}': ${t.type}[${t.dims.join(",")}]`)).join(", ")})`);const c=await this.profiler.event("node",e.node.name,(async()=>e.op.impl(n,l,e.op.context)));if(c.length!==e.node.outputs.length)throw new Error("the size of output does not match model definition.");c.forEach(((t,n)=>{const r=e.node.outputs[n];if(this._values[r])throw new Error(`output [${r}] already has value: op:${e.node.name}`);this._values[r]=t}));const d=new Set;c.forEach(((t,n)=>{const r=e.node.outputs[n];for(const t of o[r].to){const e=a[t];let n=!0;for(const t of e.inputs)if(!this._values[t]){n=!1;break}n&&d.add(t)}})),s.push(...d)}const l=[];for(let t=0;t<this.graph.getOutputIndices().length;t++){const e=this.graph.getOutputIndices()[t],n=this._values[e];if(void 0===n)throw new Error(`required output [${e}] does not have value`);0===e?await n.getData():n.data,l.push(n)}return r.Logger.verbose("ExecPlan","disposing of inferenceHandler"),n.dispose(),l}))}}},7070:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Graph=void 0;const r=n(1446),i=n(7778),s=n(9395),o=n(9162),a=n(2517);var u=s.onnxruntime.experimental.fbs;e.Graph={from:(t,e)=>new d(t,e)};class l{constructor(t){this._from=void 0,this._to=[],this.tensor=void 0,this.type=void 0,t&&(this.type=a.ProtoUtil.tensorValueTypeFromProto(t.type.tensorType))}get from(){return this._from}get to(){return this._to}}class c{constructor(t,e){t instanceof r.onnx.NodeProto?(this.name=t.name,this.opType=t.opType,this.attributes=new i.Attribute(t.attribute)):t instanceof u.Node&&(this.name=null!=e?e:t.name(),this.opType=t.opType(),this.attributes=new i.Attribute(a.ProtoUtil.tensorAttributesFromORTFormat(t))),this.inputs=[],this.outputs=[],this.executeNode=!0}}class d{constructor(t,e){if(!t)throw new TypeError("graph is empty");this.buildGraph(t),this.transformGraph(e),this.checkIsAcyclic()}getInputIndices(){return this._allInputIndices}getInputNames(){return this._allInputNames}getOutputIndices(){return this._allOutputIndices}getOutputNames(){return this._allOutputNames}getValues(){return this._allData}getNodes(){return this._nodes}buildGraph(t){if(t instanceof r.onnx.GraphProto)this.buildGraphFromOnnxFormat(t);else{if(!(t instanceof u.Graph))throw new TypeError("Graph type is not supported.");this.buildGraphFromOrtFormat(t)}}buildGraphFromOnnxFormat(t){const e=new Map;this._allData=[],this._allInputIndices=[],this._allInputNames=[],this._allOutputIndices=[],this._allOutputNames=[],this._nodes=[];const n=new Map;if(!t.input)throw new Error("missing information in graph: input");const r=[];for(const n of t.input){if(e.has(n.name))throw new Error(`duplicated input name: ${n.name}`);const t=this._allData.push(new l(n))-1;e.set(n.name,t),r.push(n.name)}if(!t.initializer)throw new Error("missing information in graph: initializer");for(const n of t.initializer){let t=e.get(n.name);if(void 0===t){const r=new l;r.type={shape:{dims:a.ProtoUtil.tensorDimsFromProto(n.dims)},tensorType:a.ProtoUtil.tensorDataTypeFromProto(n.dataType)},t=this._allData.push(r)-1,e.set(n.name,t)}this._allData[t]._from=-1,this._allData[t].tensor=o.Tensor.fromProto(n)}for(let t=0;t<this._allData.length;t++)this._allData[t].tensor||(this._allInputIndices.push(t),this._allInputNames.push(r[t]));if(!t.output)throw new Error("missing information in graph: output");for(const n of t.output){if(e.has(n.name))throw new Error(`duplicated output name: ${n.name}`);const t=this._allData.push(new l(n))-1;e.set(n.name,t),this._allOutputIndices.push(t),this._allOutputNames.push(n.name)}if(!t.node)throw new Error("missing information in graph: node");for(const e of t.node){if(!e.name)for(let t=0;;t++){const r=`unnamed_${e.opType}_${t}`;if(!n.has(r)){e.name=r;break}}if(n.has(e.name))throw new Error(`duplicated node name: ${e.name}`);const t=this._nodes.push(new c(e))-1;n.set(e.name,t)}for(let n=0;n<this._nodes.length;n++){const r=this._nodes[n],i=t.node[n];if(!i.output)throw new Error(`missing output for node: ${i.name}`);for(const t of i.output){let s=e.get(t);if(void 0===s&&(s=this._allData.push(new l)-1,e.set(t,s)),r.outputs.push(s),void 0!==this._allData[s]._from)throw new Error(`multiple nodes output to one data value: ${s}`);if(this._allData[s]._from=n,"Constant"===i.opType){if(!i.attribute||1!==i.attribute.length||!i.attribute[0].t)throw new Error("missing attributes or missing tensor value in attributes for this Constant operator");if(!i.output||1!==i.output.length)throw new Error("missing output or incorrect number of outputs for this Constant operator");r.outputs.pop(),r.executeNode=!1,this._allData[s]._from=-1,this._allData[s].tensor=o.Tensor.fromProto(i.attribute[0].t)}}}for(let n=0;n<this._nodes.length;n++){const r=this._nodes[n],i=t.node[n];if(!i.input)throw new Error(`missing input for node: ${i.name}`);for(const t of i.input){const s=e.get(t);if(void 0===s){if(""===t&&3===i.input.length&&"Resize"===i.opType)continue;throw new Error(`unrecognized input '${t}' for node: ${i.name}`)}r.inputs.push(s),this._allData[s]._to.push(n)}}return!0}buildGraphFromOrtFormat(t){var e,n,r;const i=new Map;this._allData=[],this._allInputIndices=[],this._allInputNames=[],this._allOutputIndices=[],this._allOutputNames=[],this._nodes=[];const s=new Map,d=[];for(let s=0;s<t.inputsLength();s++){const o=t.inputs(s);if(i.has(o))throw new Error(`duplicated input name: ${o}`);for(let s=0;s<t.nodeArgsLength();s++)if((null===(e=t.nodeArgs(s))||void 0===e?void 0:e.name())===o){const e=new l;if((null===(r=null===(n=t.nodeArgs(s))||void 0===n?void 0:n.type())||void 0===r?void 0:r.valueType())!==u.TypeInfoValue.tensor_type)throw new Error("Unexpected value type for the nodeArg.");const c=t.nodeArgs(s).type().value(new u.TensorTypeAndShape),h=a.ProtoUtil.tensorDataTypeFromProto(c.elemType()),p=c.shape(),f=[];for(let t=0;t<p.dimLength();t++)f.push(a.LongUtil.longToNumber(p.dim(t).value().dimValue()));e.type={shape:{dims:f},tensorType:h};const g=this._allData.push(e)-1;i.set(o,g),d.push(o)}}for(let e=0;e<t.initializersLength();e++){const n=t.initializers(e);let r=i.get(n.name());if(void 0===r){const t=new l,e=a.ProtoUtil.tensorDimsFromORTFormat(n),s=a.ProtoUtil.tensorDataTypeFromProto(n.dataType());t.type={shape:{dims:e},tensorType:s},r=this._allData.push(t)-1,i.set(n.name(),r)}this._allData[r]._from=-1,this._allData[r].tensor=o.Tensor.fromOrtTensor(n)}for(let t=0;t<this._allData.length;t++)this._allData[t].tensor||(this._allInputIndices.push(t),this._allInputNames.push(d[t]));for(let e=0;e<t.outputsLength();e++){const n=t.outputs(e);if(i.has(n))throw new Error(`duplicated output name: ${n}`);const r=this._allData.push(new l)-1;i.set(n,r),this._allOutputIndices.push(r),this._allOutputNames.push(n)}if(!t.nodes)throw new Error("missing information in graph: node");for(let e=0;e<t.nodesLength();e++){const n=t.nodes(e);let r=n.name();if(!r)for(let t=0;r=`unnamed_${n.opType()}_${t}`,s.has(r);t++);if(s.has(r))throw new Error(`duplicated node name: ${r}`);const i=this._nodes.push(new c(n,r))-1;s.set(r,i)}for(let e=0;e<this._nodes.length;e++){const n=this._nodes[e],r=t.nodes(e);if(null==r)throw new Error(`No node exists at index ${e}`);if(0===(null==r?void 0:r.outputsLength()))throw new Error(`missing output for node: ${r.name}`);for(let t=0;t<(null==r?void 0:r.outputsLength());t++){const s=null==r?void 0:r.outputs(t);let a=i.get(s);if(void 0===a&&(a=this._allData.push(new l)-1,i.set(s,a)),n.outputs.push(a),void 0!==this._allData[a]._from)throw new Error(`multiple nodes output to one data value: ${a}`);if(this._allData[a]._from=e,"Constant"===r.opType()){if(1!==r.attributesLength()||!r.attributes(0).t())throw new Error("missing attributes or missing tensor value in attributes for this Constant operator");if(1!==r.outputsLength())throw new Error("missing output or incorrect number of outputs for this Constant operator");n.outputs.pop(),n.executeNode=!1,this._allData[a]._from=-1,this._allData[a].tensor=o.Tensor.fromOrtTensor(r.attributes(0).t())}}}for(let e=0;e<this._nodes.length;e++){const n=this._nodes[e],r=t.nodes(e);if(0===r.inputsLength())throw new Error(`missing input for node: ${r.name}`);for(let t=0;t<r.inputsLength();t++){const s=r.inputs(t),o=i.get(s);if(void 0===o)throw new Error(`unrecognized input '${s}' for node: ${r.name()}`);n.inputs.push(o),this._allData[o]._to.push(e)}}}checkIsAcyclic(){const t=new Set;this._allInputIndices.forEach((e=>{this._allData[e]._to.forEach((e=>{t.add(e)}))}));const e=Array.from(t),n=new Array(this._nodes.length).fill("white");for(;e.length>0;){const t=e.pop();"gray"===n[t]?n[t]="black":(e.push(t),n[t]="gray",this._nodes[t].outputs.forEach((r=>{const i=this._allData[r];if(void 0!==i.tensor)throw new Error("node outputs should not be initialized");if(i._from!==t)throw new Error("from property of the Value object doesn't match index of Node being processed");i._to.forEach((t=>{if("gray"===n[t])throw new Error("model graph is cyclic");"white"===n[t]&&e.push(t)}))})))}}transformGraph(t){this.removeAllIdentityNodes(),this.removeAllDropoutNodes(),this.fuseConvActivationNodes(),t&&t.transformGraph(this),this.finalizeGraph()}finalizeGraph(){let t=0;for(let e=0;e<this._nodes.length;e++)this._nodes[e].executeNode?t>0&&(this._nodes[e].inputs.forEach((n=>{const r=this._allData[n]._to.indexOf(e+t);-1!==r&&(this._allData[n]._to[r]=e)})),this._nodes[e].outputs.forEach((n=>{this._allData[n]._from&&this._allData[n]._from===e+t&&(this._allData[n]._from=e)}))):(t++,this._nodes[e].outputs.forEach((t=>{this._allData[t]._from=-2})),this._nodes.splice(e,1),e--);t=0;for(let e=0;e<this._allData.length;e++)if(-2!==this._allData[e].from||-1!==this._allOutputIndices.indexOf(e+t)){if(t>0){let n=-1;void 0!==this._allData[e].from&&-1!==this._allData[e].from?(n=this._nodes[this._allData[e].from].outputs.indexOf(e+t),-1!==n&&(this._nodes[this._allData[e].from].outputs[n]=e)):(n=this._allInputIndices.indexOf(e+t),-1!==n&&(this._allInputIndices[n]=e)),this._allData[e].to.forEach((r=>{n=this._nodes[r].inputs.indexOf(e+t),-1!==n&&(this._nodes[r].inputs[n]=e)})),0===this._allData[e].to.length&&(n=this._allOutputIndices.indexOf(e+t),-1!==n&&(this._allOutputIndices[n]=e))}}else t++,this._allData.splice(e,1),e--}deleteNode(t){const e=this._nodes[t];if(e.outputs.length>1)for(let t=1;t<e.outputs.length;t++)if(this._allData[e.outputs[t]].to.length>0)throw new Error("Node deletion with more than one output connected to other nodes is not supported. ");e.executeNode=!1;const n=e.inputs[0],r=e.outputs[0],i=this._allData[r].to,s=this._allData[n].to.indexOf(t);if(-1===s)throw new Error("The Value object doesn't have the current Node in it's 'to' property ");this._allData[n].to.splice(s,1),this._allData[r]._to=[];const o=this._allOutputIndices.indexOf(r);if(-1!==o&&(this._allOutputIndices[o]=n),i&&i.length>0)for(const t of i){const e=this._nodes[t].inputs.indexOf(r);if(-1===e)throw new Error("The Node object doesn't have the output Value in it's 'inputs' property ");this._nodes[t].inputs[e]=n,this._allData[n].to.push(t)}}removeAllDropoutNodes(){let t=0;for(const e of this._nodes){if("Dropout"===e.opType){if(1!==e.inputs.length)throw new Error("Dropout nodes should only contain one input. ");if(1!==e.outputs.length&&2!==e.outputs.length)throw new Error("Dropout nodes should contain either 1 or 2 output(s)");if(2===e.outputs.length&&0!==this._allData[e.outputs[1]]._to.length)throw new Error("Dropout nodes's second output should not be referenced by other nodes");this.deleteNode(t)}t++}}removeAllIdentityNodes(){let t=0;for(const e of this._nodes)"Identity"===e.opType&&this.deleteNode(t),t++}isActivation(t){switch(t.opType){case"Relu":case"Sigmoid":case"Clip":return!0;default:return!1}}fuseConvActivationNodes(){for(const t of this._nodes)if("Conv"===t.opType){const e=this._allData[t.outputs[0]]._to;if(1===e.length&&this.isActivation(this._nodes[e[0]])){const n=this._nodes[e[0]];if("Clip"===n.opType)if(1===n.inputs.length)try{t.attributes.set("activation_params","floats",[n.attributes.getFloat("min"),n.attributes.getFloat("max")])}catch(e){t.attributes.set("activation_params","floats",[a.MIN_CLIP,a.MAX_CLIP])}else{if(!(n.inputs.length>=3&&void 0!==this._allData[n.inputs[1]].tensor&&void 0!==this._allData[n.inputs[2]].tensor))continue;t.attributes.set("activation_params","floats",[this._allData[n.inputs[1]].tensor.floatData[0],this._allData[n.inputs[2]].tensor.floatData[0]])}t.attributes.set("activation","string",n.opType),this.deleteNode(e[0])}}}}},6231:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.now=e.Profiler=e.Logger=void 0;const n={verbose:1e3,info:2e3,warning:4e3,error:5e3,fatal:6e3},r={none:new class{log(t,e,n){}},console:new class{log(t,e,n){console.log(`${this.color(t)} ${n?""+n+" ":""}${e}`)}color(t){switch(t){case"verbose":return"v";case"info":return"i";case"warning":return"w";case"error":return"e";case"fatal":return"f";default:throw new Error(`unsupported severity: ${t}`)}}}},i={provider:"console",minimalSeverity:"warning",logDateTime:!0,logSourceLocation:!1};let s={"":i};function o(t,e,n,r){if(void 0===e)return i=t,{verbose:o.verbose.bind(null,i),info:o.info.bind(null,i),warning:o.warning.bind(null,i),error:o.error.bind(null,i),fatal:o.fatal.bind(null,i)};if(void 0===n)a(t,e);else if("number"==typeof n&&void 0===r)a(t,e);else if("string"==typeof n&&void 0===r)a(t,n,0,e);else{if("string"!=typeof n||"number"!=typeof r)throw new TypeError("input is valid");a(t,n,0,e)}var i}function a(t,e,i,o){const a=s[o||""]||s[""];n[t]<n[a.minimalSeverity]||(a.logDateTime&&(e=`${(new Date).toISOString()}|${e}`),a.logSourceLocation,r[a.provider].log(t,e,o))}!function(t){function e(t){s={},n("",t||{})}function n(t,n){if("*"===t)e(n);else{const e=s[t]||i;s[t]={provider:n.provider||e.provider,minimalSeverity:n.minimalSeverity||e.minimalSeverity,logDateTime:void 0===n.logDateTime?e.logDateTime:n.logDateTime,logSourceLocation:void 0===n.logSourceLocation?e.logSourceLocation:n.logSourceLocation}}}t.verbose=function(e,n){t("verbose",e,n)},t.info=function(e,n){t("info",e,n)},t.warning=function(e,n){t("warning",e,n)},t.error=function(e,n){t("error",e,n)},t.fatal=function(e,n){t("fatal",e,n)},t.reset=e,t.set=n,t.setWithEnv=function(t){const e={};t.logLevel&&(e.minimalSeverity=t.logLevel),n("",e)}}(o||(o={})),e.Logger=o;class u{constructor(t,e,n,r,i,s){this.category=t,this.name=e,this.startTime=n,this.endCallback=r,this.timer=i,this.ctx=s}end(){return this.endCallback(this)}async checkTimer(){if(void 0===this.ctx||void 0===this.timer)throw new Error("No webgl timer found");return this.ctx.endTimer(),this.ctx.waitForQueryAndGetTime(this.timer)}}class l{constructor(t,e,n,r){this.category=t,this.name=e,this.startTime=n,this.endTime=r}}e.Profiler=class{static create(t){return void 0===t?new this:new this(t.maxNumberEvents,t.flushBatchSize,t.flushIntervalInMilliseconds)}constructor(t,e,n){this._started=!1,this._flushPointer=0,this._started=!1,this._maxNumberEvents=void 0===t?1e4:t,this._flushBatchSize=void 0===e?10:e,this._flushIntervalInMilliseconds=void 0===n?5e3:n}start(){this._started=!0,this._timingEvents=[],this._flushTime=(0,e.now)(),this._flushPointer=0}stop(){for(this._started=!1;this._flushPointer<this._timingEvents.length;this._flushPointer++)this.logOneEvent(this._timingEvents[this._flushPointer])}event(t,e,n,r){const i=this._started?this.begin(t,e,r):void 0;let s=!1;const o=n();if(o&&"function"==typeof o.then)return s=!0,new Promise(((t,e)=>{o.then((async e=>{i&&await i.end(),t(e)}),(async t=>{i&&await i.end(),e(t)}))}));if(!s&&i){const t=i.end();if(t&&"function"==typeof t.then)return new Promise(((e,n)=>{t.then((()=>{e(o)}),(t=>{n(t)}))}))}return o}begin(t,n,r){if(!this._started)throw new Error("profiler is not started yet");if(void 0===r){const r=(0,e.now)();return this.flush(r),new u(t,n,r,(t=>this.endSync(t)))}{const e=r.beginTimer();return new u(t,n,0,(async t=>this.end(t)),e,r)}}async end(t){const e=await t.checkTimer();this._timingEvents.length<this._maxNumberEvents&&(this._timingEvents.push(new l(t.category,t.name,t.startTime,e)),this.flush(e))}endSync(t){const n=(0,e.now)();this._timingEvents.length<this._maxNumberEvents&&(this._timingEvents.push(new l(t.category,t.name,t.startTime,n)),this.flush(n))}logOneEvent(t){e.Logger.verbose(`Profiler.${t.category}`,`${(t.endTime-t.startTime).toFixed(2)}ms on event '${t.name}' at ${t.endTime.toFixed(2)}`)}flush(t){if(this._timingEvents.length-this._flushPointer>=this._flushBatchSize||t-this._flushTime>=this._flushIntervalInMilliseconds){for(const t=this._flushPointer;this._flushPointer<t+this._flushBatchSize&&this._flushPointer<this._timingEvents.length;this._flushPointer++)this.logOneEvent(this._timingEvents[this._flushPointer]);this._flushTime=(0,e.now)()}}get started(){return this._started}},e.now="undefined"!=typeof performance&&performance.now?()=>performance.now():Date.now},2644:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Model=void 0;const r=n(5686),i=n(1446),s=n(7070),o=n(9395),a=n(2517);var u=o.onnxruntime.experimental.fbs;e.Model=class{constructor(){}load(t,e,n){if(!n)try{return void this.loadFromOnnxFormat(t,e)}catch(t){if(void 0!==n)throw t}this.loadFromOrtFormat(t,e)}loadFromOnnxFormat(t,e){const n=i.onnx.ModelProto.decode(t);if(a.LongUtil.longToNumber(n.irVersion)<3)throw new Error("only support ONNX model with IR_VERSION>=3");this._opsets=n.opsetImport.map((t=>({domain:t.domain,version:a.LongUtil.longToNumber(t.version)}))),this._graph=s.Graph.from(n.graph,e)}loadFromOrtFormat(t,e){const n=new r.flatbuffers.ByteBuffer(t),i=u.InferenceSession.getRootAsInferenceSession(n).model();if(a.LongUtil.longToNumber(i.irVersion())<3)throw new Error("only support ONNX model with IR_VERSION>=3");this._opsets=[];for(let t=0;t<i.opsetImportLength();t++){const e=i.opsetImport(t);this._opsets.push({domain:null==e?void 0:e.domain(),version:a.LongUtil.longToNumber(e.version())})}this._graph=s.Graph.from(i.graph(),e)}get graph(){return this._graph}get opsets(){return this._opsets}}},782:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FLOAT_TYPES=e.INT_TYPES=e.NUMBER_TYPES=void 0,e.NUMBER_TYPES=["float32","float64","int32","int16","int8","uint16","uint32","uint8"],e.INT_TYPES=["int32","int16","int8","uint16","uint32","uint8"],e.FLOAT_TYPES=["float32","float64"]},1047:(t,e)=>{"use strict";function n(t,e){if(e.endsWith("+")){const n=Number.parseInt(e.substring(0,e.length-1),10);return!isNaN(n)&&n<=t}if(2===e.split("-").length){const n=e.split("-"),r=Number.parseInt(n[0],10),i=Number.parseInt(n[1],10);return!isNaN(r)&&!isNaN(i)&&r<=t&&t<=i}return Number.parseInt(e,10)===t}Object.defineProperty(e,"__esModule",{value:!0}),e.resolveOperator=void 0,e.resolveOperator=function(t,e,r){for(const i of r){const r=i[0],s=i[1],o=i[2],a=i[3],u=i[4];if(t.opType===r)for(const t of e)if((t.domain===s||"ai.onnx"===t.domain&&""===s)&&n(t.version,o))return{opImpl:a,opInit:u}}throw new TypeError(`cannot resolve operator '${t.opType}' with opsets: ${e.map((t=>`${t.domain||"ai.onnx"} v${t.version}`)).join(", ")}`)}},9395:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.onnxruntime=void 0;const r=n(5686);var i,s;(function(t){let e;!function(t){t[t.UNDEFINED=0]="UNDEFINED",t[t.FLOAT=1]="FLOAT",t[t.INT=2]="INT",t[t.STRING=3]="STRING",t[t.TENSOR=4]="TENSOR",t[t.GRAPH=5]="GRAPH",t[t.FLOATS=6]="FLOATS",t[t.INTS=7]="INTS",t[t.STRINGS=8]="STRINGS",t[t.TENSORS=9]="TENSORS",t[t.GRAPHS=10]="GRAPHS",t[t.SPARSE_TENSOR=11]="SPARSE_TENSOR",t[t.SPARSE_TENSORS=12]="SPARSE_TENSORS"}(e=t.AttributeType||(t.AttributeType={}))})((s=(i=e.onnxruntime||(e.onnxruntime={})).experimental||(i.experimental={})).fbs||(s.fbs={})),function(t){!function(t){!function(t){let e;!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.VALUE=1]="VALUE",t[t.PARAM=2]="PARAM"}(e=t.DimensionValueType||(t.DimensionValueType={}))}(t.fbs||(t.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(t){!function(t){let e;!function(t){t[t.UNDEFINED=0]="UNDEFINED",t[t.FLOAT=1]="FLOAT",t[t.UINT8=2]="UINT8",t[t.INT8=3]="INT8",t[t.UINT16=4]="UINT16",t[t.INT16=5]="INT16",t[t.INT32=6]="INT32",t[t.INT64=7]="INT64",t[t.STRING=8]="STRING",t[t.BOOL=9]="BOOL",t[t.FLOAT16=10]="FLOAT16",t[t.DOUBLE=11]="DOUBLE",t[t.UINT32=12]="UINT32",t[t.UINT64=13]="UINT64",t[t.COMPLEX64=14]="COMPLEX64",t[t.COMPLEX128=15]="COMPLEX128",t[t.BFLOAT16=16]="BFLOAT16"}(e=t.TensorDataType||(t.TensorDataType={}))}(t.fbs||(t.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(t){!function(t){let e;!function(t){t[t.Primitive=0]="Primitive",t[t.Fused=1]="Fused"}(e=t.NodeType||(t.NodeType={}))}(t.fbs||(t.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(t){!function(t){let e;!function(t){t[t.NONE=0]="NONE",t[t.tensor_type=1]="tensor_type",t[t.sequence_type=2]="sequence_type",t[t.map_type=3]="map_type"}(e=t.TypeInfoValue||(t.TypeInfoValue={}))}(t.fbs||(t.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsShape(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsShape(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}dim(e,n){let r=this.bb.__offset(this.bb_pos,4);return r?(n||new t.experimental.fbs.Dimension).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}dimLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startShape(t){t.startObject(1)}static addDim(t,e){t.addFieldOffset(0,e,0)}static createDimVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startDimVector(t,e){t.startVector(4,e,4)}static endShape(t){return t.endObject()}static createShape(t,e){return n.startShape(t),n.addDim(t,e),n.endShape(t)}}e.Shape=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDimension(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsDimension(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}value(e){let n=this.bb.__offset(this.bb_pos,4);return n?(e||new t.experimental.fbs.DimensionValue).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}denotation(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}static startDimension(t){t.startObject(2)}static addValue(t,e){t.addFieldOffset(0,e,0)}static addDenotation(t,e){t.addFieldOffset(1,e,0)}static endDimension(t){return t.endObject()}static createDimension(t,e,r){return n.startDimension(t),n.addValue(t,e),n.addDenotation(t,r),n.endDimension(t)}}e.Dimension=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDimensionValue(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsDimensionValue(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}dimType(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt8(this.bb_pos+e):t.experimental.fbs.DimensionValueType.UNKNOWN}dimValue(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}dimParam(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__string(this.bb_pos+e,t):null}static startDimensionValue(t){t.startObject(3)}static addDimType(e,n){e.addFieldInt8(0,n,t.experimental.fbs.DimensionValueType.UNKNOWN)}static addDimValue(t,e){t.addFieldInt64(1,e,t.createLong(0,0))}static addDimParam(t,e){t.addFieldOffset(2,e,0)}static endDimensionValue(t){return t.endObject()}static createDimensionValue(t,e,r,i){return n.startDimensionValue(t),n.addDimType(t,e),n.addDimValue(t,r),n.addDimParam(t,i),n.endDimensionValue(t)}}e.DimensionValue=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTensorTypeAndShape(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTensorTypeAndShape(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}elemType(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt32(this.bb_pos+e):t.experimental.fbs.TensorDataType.UNDEFINED}shape(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.experimental.fbs.Shape).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}static startTensorTypeAndShape(t){t.startObject(2)}static addElemType(e,n){e.addFieldInt32(0,n,t.experimental.fbs.TensorDataType.UNDEFINED)}static addShape(t,e){t.addFieldOffset(1,e,0)}static endTensorTypeAndShape(t){return t.endObject()}static createTensorTypeAndShape(t,e,r){return n.startTensorTypeAndShape(t),n.addElemType(t,e),n.addShape(t,r),n.endTensorTypeAndShape(t)}}e.TensorTypeAndShape=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsMapType(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMapType(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}keyType(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt32(this.bb_pos+e):t.experimental.fbs.TensorDataType.UNDEFINED}valueType(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.experimental.fbs.TypeInfo).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}static startMapType(t){t.startObject(2)}static addKeyType(e,n){e.addFieldInt32(0,n,t.experimental.fbs.TensorDataType.UNDEFINED)}static addValueType(t,e){t.addFieldOffset(1,e,0)}static endMapType(t){return t.endObject()}static createMapType(t,e,r){return n.startMapType(t),n.addKeyType(t,e),n.addValueType(t,r),n.endMapType(t)}}e.MapType=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSequenceType(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSequenceType(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}elemType(e){let n=this.bb.__offset(this.bb_pos,4);return n?(e||new t.experimental.fbs.TypeInfo).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}static startSequenceType(t){t.startObject(1)}static addElemType(t,e){t.addFieldOffset(0,e,0)}static endSequenceType(t){return t.endObject()}static createSequenceType(t,e){return n.startSequenceType(t),n.addElemType(t,e),n.endSequenceType(t)}}e.SequenceType=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(t){(t.fbs||(t.fbs={})).EdgeEnd=class{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}nodeIndex(){return this.bb.readUint32(this.bb_pos)}srcArgIndex(){return this.bb.readInt32(this.bb_pos+4)}dstArgIndex(){return this.bb.readInt32(this.bb_pos+8)}static createEdgeEnd(t,e,n,r){return t.prep(4,12),t.writeInt32(r),t.writeInt32(n),t.writeInt32(e),t.offset()}}}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsNodeEdge(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNodeEdge(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}nodeIndex(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}inputEdges(e,n){let r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.experimental.fbs.EdgeEnd).__init(this.bb.__vector(this.bb_pos+r)+12*e,this.bb):null}inputEdgesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}outputEdges(e,n){let r=this.bb.__offset(this.bb_pos,8);return r?(n||new t.experimental.fbs.EdgeEnd).__init(this.bb.__vector(this.bb_pos+r)+12*e,this.bb):null}outputEdgesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startNodeEdge(t){t.startObject(3)}static addNodeIndex(t,e){t.addFieldInt32(0,e,0)}static addInputEdges(t,e){t.addFieldOffset(1,e,0)}static startInputEdgesVector(t,e){t.startVector(12,e,4)}static addOutputEdges(t,e){t.addFieldOffset(2,e,0)}static startOutputEdgesVector(t,e){t.startVector(12,e,4)}static endNodeEdge(t){return t.endObject()}static createNodeEdge(t,e,r,i){return n.startNodeEdge(t),n.addNodeIndex(t,e),n.addInputEdges(t,r),n.addOutputEdges(t,i),n.endNodeEdge(t)}}e.NodeEdge=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsNode(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNode(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}domain(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__string(this.bb_pos+e,t):null}sinceVersion(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt32(this.bb_pos+t):0}index(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readUint32(this.bb_pos+t):0}opType(t){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__string(this.bb_pos+e,t):null}type(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readInt32(this.bb_pos+e):t.experimental.fbs.NodeType.Primitive}executionProviderType(t){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__string(this.bb_pos+e,t):null}inputs(t,e){let n=this.bb.__offset(this.bb_pos,20);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}inputsLength(){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__vector_len(this.bb_pos+t):0}outputs(t,e){let n=this.bb.__offset(this.bb_pos,22);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}outputsLength(){let t=this.bb.__offset(this.bb_pos,22);return t?this.bb.__vector_len(this.bb_pos+t):0}attributes(e,n){let r=this.bb.__offset(this.bb_pos,24);return r?(n||new t.experimental.fbs.Attribute).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}attributesLength(){let t=this.bb.__offset(this.bb_pos,24);return t?this.bb.__vector_len(this.bb_pos+t):0}inputArgCounts(t){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readInt32(this.bb.__vector(this.bb_pos+e)+4*t):0}inputArgCountsLength(){let t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__vector_len(this.bb_pos+t):0}inputArgCountsArray(){let t=this.bb.__offset(this.bb_pos,26);return t?new Int32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}implicitInputs(t,e){let n=this.bb.__offset(this.bb_pos,28);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}implicitInputsLength(){let t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__vector_len(this.bb_pos+t):0}static startNode(t){t.startObject(13)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addDomain(t,e){t.addFieldOffset(2,e,0)}static addSinceVersion(t,e){t.addFieldInt32(3,e,0)}static addIndex(t,e){t.addFieldInt32(4,e,0)}static addOpType(t,e){t.addFieldOffset(5,e,0)}static addType(e,n){e.addFieldInt32(6,n,t.experimental.fbs.NodeType.Primitive)}static addExecutionProviderType(t,e){t.addFieldOffset(7,e,0)}static addInputs(t,e){t.addFieldOffset(8,e,0)}static createInputsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startInputsVector(t,e){t.startVector(4,e,4)}static addOutputs(t,e){t.addFieldOffset(9,e,0)}static createOutputsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startOutputsVector(t,e){t.startVector(4,e,4)}static addAttributes(t,e){t.addFieldOffset(10,e,0)}static createAttributesVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startAttributesVector(t,e){t.startVector(4,e,4)}static addInputArgCounts(t,e){t.addFieldOffset(11,e,0)}static createInputArgCountsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addInt32(e[n]);return t.endVector()}static startInputArgCountsVector(t,e){t.startVector(4,e,4)}static addImplicitInputs(t,e){t.addFieldOffset(12,e,0)}static createImplicitInputsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startImplicitInputsVector(t,e){t.startVector(4,e,4)}static endNode(t){return t.endObject()}static createNode(t,e,r,i,s,o,a,u,l,c,d,h,p,f){return n.startNode(t),n.addName(t,e),n.addDocString(t,r),n.addDomain(t,i),n.addSinceVersion(t,s),n.addIndex(t,o),n.addOpType(t,a),n.addType(t,u),n.addExecutionProviderType(t,l),n.addInputs(t,c),n.addOutputs(t,d),n.addAttributes(t,h),n.addInputArgCounts(t,p),n.addImplicitInputs(t,f),n.endNode(t)}}e.Node=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsValueInfo(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsValueInfo(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}type(e){let n=this.bb.__offset(this.bb_pos,8);return n?(e||new t.experimental.fbs.TypeInfo).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}static startValueInfo(t){t.startObject(3)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addType(t,e){t.addFieldOffset(2,e,0)}static endValueInfo(t){return t.endObject()}static createValueInfo(t,e,r,i){return n.startValueInfo(t),n.addName(t,e),n.addDocString(t,r),n.addType(t,i),n.endValueInfo(t)}}e.ValueInfo=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTypeInfo(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTypeInfo(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}denotation(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}valueType(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint8(this.bb_pos+e):t.experimental.fbs.TypeInfoValue.NONE}value(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__union(t,this.bb_pos+e):null}static startTypeInfo(t){t.startObject(3)}static addDenotation(t,e){t.addFieldOffset(0,e,0)}static addValueType(e,n){e.addFieldInt8(1,n,t.experimental.fbs.TypeInfoValue.NONE)}static addValue(t,e){t.addFieldOffset(2,e,0)}static endTypeInfo(t){return t.endObject()}static createTypeInfo(t,e,r,i){return n.startTypeInfo(t),n.addDenotation(t,e),n.addValueType(t,r),n.addValue(t,i),n.endTypeInfo(t)}}e.TypeInfo=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(t){!function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsOperatorSetId(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsOperatorSetId(t,n){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}domain(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}version(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}static startOperatorSetId(t){t.startObject(2)}static addDomain(t,e){t.addFieldOffset(0,e,0)}static addVersion(t,e){t.addFieldInt64(1,e,t.createLong(0,0))}static endOperatorSetId(t){return t.endObject()}static createOperatorSetId(t,n,r){return e.startOperatorSetId(t),e.addDomain(t,n),e.addVersion(t,r),e.endOperatorSetId(t)}}t.OperatorSetId=e}(t.fbs||(t.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTensor(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTensor(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}dims(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}dimsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}dataType(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt32(this.bb_pos+e):t.experimental.fbs.TensorDataType.UNDEFINED}rawData(t){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readUint8(this.bb.__vector(this.bb_pos+e)+t):0}rawDataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}rawDataArray(){let t=this.bb.__offset(this.bb_pos,12);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}stringData(t,e){let n=this.bb.__offset(this.bb_pos,14);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}stringDataLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}static startTensor(t){t.startObject(6)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addDims(t,e){t.addFieldOffset(2,e,0)}static createDimsVector(t,e){t.startVector(8,e.length,8);for(let n=e.length-1;n>=0;n--)t.addInt64(e[n]);return t.endVector()}static startDimsVector(t,e){t.startVector(8,e,8)}static addDataType(e,n){e.addFieldInt32(3,n,t.experimental.fbs.TensorDataType.UNDEFINED)}static addRawData(t,e){t.addFieldOffset(4,e,0)}static createRawDataVector(t,e){t.startVector(1,e.length,1);for(let n=e.length-1;n>=0;n--)t.addInt8(e[n]);return t.endVector()}static startRawDataVector(t,e){t.startVector(1,e,1)}static addStringData(t,e){t.addFieldOffset(5,e,0)}static createStringDataVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startStringDataVector(t,e){t.startVector(4,e,4)}static endTensor(t){return t.endObject()}static createTensor(t,e,r,i,s,o,a){return n.startTensor(t),n.addName(t,e),n.addDocString(t,r),n.addDims(t,i),n.addDataType(t,s),n.addRawData(t,o),n.addStringData(t,a),n.endTensor(t)}}e.Tensor=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSparseTensor(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSparseTensor(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}values(e){let n=this.bb.__offset(this.bb_pos,4);return n?(e||new t.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}indices(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}dims(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}dimsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSparseTensor(t){t.startObject(3)}static addValues(t,e){t.addFieldOffset(0,e,0)}static addIndices(t,e){t.addFieldOffset(1,e,0)}static addDims(t,e){t.addFieldOffset(2,e,0)}static createDimsVector(t,e){t.startVector(8,e.length,8);for(let n=e.length-1;n>=0;n--)t.addInt64(e[n]);return t.endVector()}static startDimsVector(t,e){t.startVector(8,e,8)}static endSparseTensor(t){return t.endObject()}static createSparseTensor(t,e,r,i){return n.startSparseTensor(t),n.addValues(t,e),n.addIndices(t,r),n.addDims(t,i),n.endSparseTensor(t)}}e.SparseTensor=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsAttribute(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAttribute(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}type(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt32(this.bb_pos+e):t.experimental.fbs.AttributeType.UNDEFINED}f(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readFloat32(this.bb_pos+t):0}i(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}s(t){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__string(this.bb_pos+e,t):null}t(e){let n=this.bb.__offset(this.bb_pos,16);return n?(e||new t.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}g(e){let n=this.bb.__offset(this.bb_pos,18);return n?(e||new t.experimental.fbs.Graph).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}floats(t){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readFloat32(this.bb.__vector(this.bb_pos+e)+4*t):0}floatsLength(){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__vector_len(this.bb_pos+t):0}floatsArray(){let t=this.bb.__offset(this.bb_pos,20);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}ints(t){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}intsLength(){let t=this.bb.__offset(this.bb_pos,22);return t?this.bb.__vector_len(this.bb_pos+t):0}strings(t,e){let n=this.bb.__offset(this.bb_pos,24);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}stringsLength(){let t=this.bb.__offset(this.bb_pos,24);return t?this.bb.__vector_len(this.bb_pos+t):0}tensors(e,n){let r=this.bb.__offset(this.bb_pos,26);return r?(n||new t.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}tensorsLength(){let t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__vector_len(this.bb_pos+t):0}graphs(e,n){let r=this.bb.__offset(this.bb_pos,28);return r?(n||new t.experimental.fbs.Graph).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}graphsLength(){let t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAttribute(t){t.startObject(13)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addType(e,n){e.addFieldInt32(2,n,t.experimental.fbs.AttributeType.UNDEFINED)}static addF(t,e){t.addFieldFloat32(3,e,0)}static addI(t,e){t.addFieldInt64(4,e,t.createLong(0,0))}static addS(t,e){t.addFieldOffset(5,e,0)}static addT(t,e){t.addFieldOffset(6,e,0)}static addG(t,e){t.addFieldOffset(7,e,0)}static addFloats(t,e){t.addFieldOffset(8,e,0)}static createFloatsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addFloat32(e[n]);return t.endVector()}static startFloatsVector(t,e){t.startVector(4,e,4)}static addInts(t,e){t.addFieldOffset(9,e,0)}static createIntsVector(t,e){t.startVector(8,e.length,8);for(let n=e.length-1;n>=0;n--)t.addInt64(e[n]);return t.endVector()}static startIntsVector(t,e){t.startVector(8,e,8)}static addStrings(t,e){t.addFieldOffset(10,e,0)}static createStringsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startStringsVector(t,e){t.startVector(4,e,4)}static addTensors(t,e){t.addFieldOffset(11,e,0)}static createTensorsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startTensorsVector(t,e){t.startVector(4,e,4)}static addGraphs(t,e){t.addFieldOffset(12,e,0)}static createGraphsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startGraphsVector(t,e){t.startVector(4,e,4)}static endAttribute(t){return t.endObject()}static createAttribute(t,e,r,i,s,o,a,u,l,c,d,h,p,f){return n.startAttribute(t),n.addName(t,e),n.addDocString(t,r),n.addType(t,i),n.addF(t,s),n.addI(t,o),n.addS(t,a),n.addT(t,u),n.addG(t,l),n.addFloats(t,c),n.addInts(t,d),n.addStrings(t,h),n.addTensors(t,p),n.addGraphs(t,f),n.endAttribute(t)}}e.Attribute=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsGraph(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsGraph(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}initializers(e,n){let r=this.bb.__offset(this.bb_pos,4);return r?(n||new t.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}initializersLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}nodeArgs(e,n){let r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.experimental.fbs.ValueInfo).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}nodeArgsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}nodes(e,n){let r=this.bb.__offset(this.bb_pos,8);return r?(n||new t.experimental.fbs.Node).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}nodesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}maxNodeIndex(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readUint32(this.bb_pos+t):0}nodeEdges(e,n){let r=this.bb.__offset(this.bb_pos,12);return r?(n||new t.experimental.fbs.NodeEdge).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}nodeEdgesLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}inputs(t,e){let n=this.bb.__offset(this.bb_pos,14);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}inputsLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}outputs(t,e){let n=this.bb.__offset(this.bb_pos,16);return n?this.bb.__string(this.bb.__vector(this.bb_pos+n)+4*t,e):null}outputsLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}sparseInitializers(e,n){let r=this.bb.__offset(this.bb_pos,18);return r?(n||new t.experimental.fbs.SparseTensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}sparseInitializersLength(){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startGraph(t){t.startObject(8)}static addInitializers(t,e){t.addFieldOffset(0,e,0)}static createInitializersVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startInitializersVector(t,e){t.startVector(4,e,4)}static addNodeArgs(t,e){t.addFieldOffset(1,e,0)}static createNodeArgsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startNodeArgsVector(t,e){t.startVector(4,e,4)}static addNodes(t,e){t.addFieldOffset(2,e,0)}static createNodesVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startNodesVector(t,e){t.startVector(4,e,4)}static addMaxNodeIndex(t,e){t.addFieldInt32(3,e,0)}static addNodeEdges(t,e){t.addFieldOffset(4,e,0)}static createNodeEdgesVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startNodeEdgesVector(t,e){t.startVector(4,e,4)}static addInputs(t,e){t.addFieldOffset(5,e,0)}static createInputsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startInputsVector(t,e){t.startVector(4,e,4)}static addOutputs(t,e){t.addFieldOffset(6,e,0)}static createOutputsVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startOutputsVector(t,e){t.startVector(4,e,4)}static addSparseInitializers(t,e){t.addFieldOffset(7,e,0)}static createSparseInitializersVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startSparseInitializersVector(t,e){t.startVector(4,e,4)}static endGraph(t){return t.endObject()}static createGraph(t,e,r,i,s,o,a,u,l){return n.startGraph(t),n.addInitializers(t,e),n.addNodeArgs(t,r),n.addNodes(t,i),n.addMaxNodeIndex(t,s),n.addNodeEdges(t,o),n.addInputs(t,a),n.addOutputs(t,u),n.addSparseInitializers(t,l),n.endGraph(t)}}e.Graph=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsModel(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsModel(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}irVersion(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}opsetImport(e,n){let r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.experimental.fbs.OperatorSetId).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}opsetImportLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}producerName(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__string(this.bb_pos+e,t):null}producerVersion(t){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__string(this.bb_pos+e,t):null}domain(t){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__string(this.bb_pos+e,t):null}modelVersion(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}docString(t){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__string(this.bb_pos+e,t):null}graph(e){let n=this.bb.__offset(this.bb_pos,18);return n?(e||new t.experimental.fbs.Graph).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}graphDocString(t){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.__string(this.bb_pos+e,t):null}static startModel(t){t.startObject(9)}static addIrVersion(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}static addOpsetImport(t,e){t.addFieldOffset(1,e,0)}static createOpsetImportVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startOpsetImportVector(t,e){t.startVector(4,e,4)}static addProducerName(t,e){t.addFieldOffset(2,e,0)}static addProducerVersion(t,e){t.addFieldOffset(3,e,0)}static addDomain(t,e){t.addFieldOffset(4,e,0)}static addModelVersion(t,e){t.addFieldInt64(5,e,t.createLong(0,0))}static addDocString(t,e){t.addFieldOffset(6,e,0)}static addGraph(t,e){t.addFieldOffset(7,e,0)}static addGraphDocString(t,e){t.addFieldOffset(8,e,0)}static endModel(t){return t.endObject()}static createModel(t,e,r,i,s,o,a,u,l,c){return n.startModel(t),n.addIrVersion(t,e),n.addOpsetImport(t,r),n.addProducerName(t,i),n.addProducerVersion(t,s),n.addDomain(t,o),n.addModelVersion(t,a),n.addDocString(t,u),n.addGraph(t,l),n.addGraphDocString(t,c),n.endModel(t)}}e.Model=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(t){!function(t){class e{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsKernelCreateInfos(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsKernelCreateInfos(t,n){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}nodeIndices(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint32(this.bb.__vector(this.bb_pos+e)+4*t):0}nodeIndicesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}nodeIndicesArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}kernelDefHashes(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}kernelDefHashesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startKernelCreateInfos(t){t.startObject(2)}static addNodeIndices(t,e){t.addFieldOffset(0,e,0)}static createNodeIndicesVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addInt32(e[n]);return t.endVector()}static startNodeIndicesVector(t,e){t.startVector(4,e,4)}static addKernelDefHashes(t,e){t.addFieldOffset(1,e,0)}static createKernelDefHashesVector(t,e){t.startVector(8,e.length,8);for(let n=e.length-1;n>=0;n--)t.addInt64(e[n]);return t.endVector()}static startKernelDefHashesVector(t,e){t.startVector(8,e,8)}static endKernelCreateInfos(t){return t.endObject()}static createKernelCreateInfos(t,n,r){return e.startKernelCreateInfos(t),e.addNodeIndices(t,n),e.addKernelDefHashes(t,r),e.endKernelCreateInfos(t)}}t.KernelCreateInfos=e}(t.fbs||(t.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSubGraphSessionState(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubGraphSessionState(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}graphId(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}sessionState(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.experimental.fbs.SessionState).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}static startSubGraphSessionState(t){t.startObject(2)}static addGraphId(t,e){t.addFieldOffset(0,e,0)}static addSessionState(t,e){t.addFieldOffset(1,e,0)}static endSubGraphSessionState(t){let e=t.endObject();return t.requiredField(e,4),e}static createSubGraphSessionState(t,e,r){return n.startSubGraphSessionState(t),n.addGraphId(t,e),n.addSessionState(t,r),n.endSubGraphSessionState(t)}}e.SubGraphSessionState=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSessionState(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSessionState(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}kernels(e){let n=this.bb.__offset(this.bb_pos,4);return n?(e||new t.experimental.fbs.KernelCreateInfos).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}subGraphSessionStates(e,n){let r=this.bb.__offset(this.bb_pos,6);return r?(n||new t.experimental.fbs.SubGraphSessionState).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}subGraphSessionStatesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSessionState(t){t.startObject(2)}static addKernels(t,e){t.addFieldOffset(0,e,0)}static addSubGraphSessionStates(t,e){t.addFieldOffset(1,e,0)}static createSubGraphSessionStatesVector(t,e){t.startVector(4,e.length,4);for(let n=e.length-1;n>=0;n--)t.addOffset(e[n]);return t.endVector()}static startSubGraphSessionStatesVector(t,e){t.startVector(4,e,4)}static endSessionState(t){return t.endObject()}static createSessionState(t,e,r){return n.startSessionState(t),n.addKernels(t,e),n.addSubGraphSessionStates(t,r),n.endSessionState(t)}}e.SessionState=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={})),function(t){!function(e){!function(e){class n{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsInferenceSession(t,e){return(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsInferenceSession(t,e){return t.setPosition(t.position()+r.flatbuffers.SIZE_PREFIX_LENGTH),(e||new n).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("ORTM")}ortVersion(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}model(e){let n=this.bb.__offset(this.bb_pos,6);return n?(e||new t.experimental.fbs.Model).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}sessionState(e){let n=this.bb.__offset(this.bb_pos,8);return n?(e||new t.experimental.fbs.SessionState).__init(this.bb.__indirect(this.bb_pos+n),this.bb):null}static startInferenceSession(t){t.startObject(3)}static addOrtVersion(t,e){t.addFieldOffset(0,e,0)}static addModel(t,e){t.addFieldOffset(1,e,0)}static addSessionState(t,e){t.addFieldOffset(2,e,0)}static endInferenceSession(t){return t.endObject()}static finishInferenceSessionBuffer(t,e){t.finish(e,"ORTM")}static finishSizePrefixedInferenceSessionBuffer(t,e){t.finish(e,"ORTM",!0)}static createInferenceSession(t,e,r,i){return n.startInferenceSession(t),n.addOrtVersion(t,e),n.addModel(t,r),n.addSessionState(t,i),n.endInferenceSession(t)}}e.InferenceSession=n}(e.fbs||(e.fbs={}))}(t.experimental||(t.experimental={}))}(e.onnxruntime||(e.onnxruntime={}))},7448:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OnnxjsSessionHandler=void 0;const r=n(1670),i=n(9162);e.OnnxjsSessionHandler=class{constructor(t){this.session=t,this.inputNames=this.session.inputNames,this.outputNames=this.session.outputNames}async dispose(){}async run(t,e,n){const s=new Map;for(const e in t)if(Object.hasOwnProperty.call(t,e)){const n=t[e];s.set(e,new i.Tensor(n.dims,n.type,void 0,void 0,n.data))}const o=await this.session.run(s),a={};return o.forEach(((t,e)=>{a[e]=new r.Tensor(t.type,t.data,t.dims)})),a}startProfiling(){this.session.startProfiling()}endProfiling(){this.session.endProfiling()}}},6919:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Session=void 0;const r=n(7067),i=n(1296),s=n(7091),o=n(1036),a=n(6231),u=n(2644);e.Session=class{constructor(t={}){this._initialized=!1,this.backendHint=t.backendHint,this.profiler=a.Profiler.create(t.profiler),this.context={profiler:this.profiler,graphInputTypes:[],graphInputDims:[]}}get inputNames(){return this._model.graph.getInputNames()}get outputNames(){return this._model.graph.getOutputNames()}startProfiling(){this.profiler.start()}endProfiling(){this.profiler.stop()}async loadModel(t,e,n){await this.profiler.event("session","Session.loadModel",(async()=>{const o=await(0,s.resolveBackend)(this.backendHint);if(this.sessionHandler=o.createSessionHandler(this.context),this._model=new u.Model,"string"==typeof t){const e=t.endsWith(".ort");if("undefined"==typeof fetch){const n=await(0,i.promisify)(r.readFile)(t);this.initialize(n,e)}else{const n=await fetch(t),r=await n.arrayBuffer();this.initialize(new Uint8Array(r),e)}}else if(ArrayBuffer.isView(t))this.initialize(t);else{const r=new Uint8Array(t,e||0,n||t.byteLength);this.initialize(r)}}))}initialize(t,e){if(this._initialized)throw new Error("already initialized");this.profiler.event("session","Session.initialize",(()=>{const n=this.sessionHandler.transformGraph?this.sessionHandler:void 0;this._model.load(t,n,e),this.sessionHandler.onGraphInitialized&&this.sessionHandler.onGraphInitialized(this._model.graph),this.initializeOps(this._model.graph),this._executionPlan=new o.ExecutionPlan(this._model.graph,this._ops,this.profiler)})),this._initialized=!0}async run(t){if(!this._initialized)throw new Error("session not initialized yet");return this.profiler.event("session","Session.run",(async()=>{const e=this.normalizeAndValidateInputs(t),n=await this._executionPlan.execute(this.sessionHandler,e);return this.createOutput(n)}))}normalizeAndValidateInputs(t){const e=this._model.graph.getInputNames();if(Array.isArray(t)){if(t.length!==e.length)throw new Error(`incorrect input array length: expected ${e.length} but got ${t.length}`)}else{if(t.size!==e.length)throw new Error(`incorrect input map size: expected ${e.length} but got ${t.size}`);const n=new Array(t.size);let r=0;for(let i=0;i<e.length;++i){const s=t.get(e[i]);if(!s)throw new Error(`missing input tensor for: '${name}'`);n[r++]=s}t=n}if(this.context.graphInputTypes&&0!==this.context.graphInputTypes.length&&this.context.graphInputDims&&0!==this.context.graphInputDims.length)this.validateInputTensorDims(this.context.graphInputDims,t,!1);else{const e=this._model.graph.getInputIndices(),n=this._model.graph.getValues(),r=new Array(e.length);for(let i=0;i<e.length;++i){const s=n[e[i]];r[i]=s.type.shape.dims,this.context.graphInputTypes.push(s.type.tensorType),this.context.graphInputDims.push(t[i].dims)}this.validateInputTensorDims(r,t,!0)}return this.validateInputTensorTypes(this.context.graphInputTypes,t),t}validateInputTensorTypes(t,e){for(let n=0;n<e.length;n++){const r=t[n],i=e[n].type;if(r!==i)throw new Error(`input tensor[${n}] check failed: expected type '${r}' but got ${i}`)}}validateInputTensorDims(t,e,n){for(let r=0;r<e.length;r++){const i=t[r],s=e[r].dims;if(!this.compareTensorDims(i,s,n))throw new Error(`input tensor[${r}] check failed: expected shape '[${i.join(",")}]' but got [${s.join(",")}]`)}}compareTensorDims(t,e,n){if(t.length!==e.length)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r]&&(!n||0!==t[r]))return!1;return!0}createOutput(t){const e=this._model.graph.getOutputNames();if(t.length!==e.length)throw new Error("expected number of outputs do not match number of generated outputs");const n=new Map;for(let r=0;r<e.length;++r)n.set(e[r],t[r]);return n}initializeOps(t){const e=t.getNodes();this._ops=new Array(e.length);for(let n=0;n<e.length;n++)this._ops[n]=this.sessionHandler.resolve(e[n],this._model.opsets,t)}}},9162:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Tensor=void 0;const i=n(3442),s=r(n(3720)),o=n(1446),a=n(9395),u=n(2517);var l=a.onnxruntime.experimental.fbs;class c{get data(){if(void 0===this.cache){const t=this.dataProvider(this.dataId);if(t.length!==this.size)throw new Error("Length of data provided by the Data Provider is inconsistent with the dims of this Tensor.");this.cache=t}return this.cache}get stringData(){if("string"!==this.type)throw new TypeError("data type is not string");return this.data}get integerData(){switch(this.type){case"uint8":case"int8":case"uint16":case"int16":case"int32":case"uint32":case"bool":return this.data;default:throw new TypeError("data type is not integer (uint8, int8, uint16, int16, int32, uint32, bool)")}}get floatData(){switch(this.type){case"float32":case"float64":return this.data;default:throw new TypeError("data type is not float (float32, float64)")}}get numberData(){if("string"!==this.type)return this.data;throw new TypeError("type cannot be non-number (string)")}get(t){return this.data[u.ShapeUtil.indicesToOffset(t,this.strides)]}set(t,e){this.data[u.ShapeUtil.indicesToOffset(t,this.strides)]=e}async getData(){return void 0===this.cache&&(this.cache=await this.asyncDataProvider(this.dataId)),this.cache}get strides(){return this._strides||(this._strides=u.ShapeUtil.computeStrides(this.dims)),this._strides}constructor(t,e,n,r,s,o=i.Guid.create()){this.dims=t,this.type=e,this.dataProvider=n,this.asyncDataProvider=r,this.cache=s,this.dataId=o,this.size=u.ShapeUtil.validateDimsAndCalcSize(t);const a=this.size,l=void 0===n&&void 0===r&&void 0===s;if(void 0!==s&&s.length!==a)throw new RangeError("Input dims doesn't match data length.");if("string"===e){if(!(void 0===s||Array.isArray(s)&&s.every((t=>"string"==typeof t))))throw new TypeError("cache should be a string array");l&&(this.cache=new Array(a))}else{if(void 0!==s){const t=h(e);if(!(s instanceof t))throw new TypeError(`cache should be type ${t.name}`)}if(l){const t=new ArrayBuffer(a*function(t){switch(t){case"bool":case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"float64":return 8;default:throw new Error(`cannot calculate sizeof() on type ${t}`)}}(e));this.cache=function(t,e){return new(h(e))(t)}(t,e)}}}static fromProto(t){if(!t)throw new Error("cannot construct Value from an empty tensor");const e=u.ProtoUtil.tensorDataTypeFromProto(t.dataType),n=u.ProtoUtil.tensorDimsFromProto(t.dims),r=new c(n,e);if("string"===e)t.stringData.forEach(((t,e)=>{r.data[e]=(0,u.decodeUtf8String)(t)}));else if(t.rawData&&"number"==typeof t.rawData.byteLength&&t.rawData.byteLength>0){const e=r.data,n=new DataView(t.rawData.buffer,t.rawData.byteOffset,t.rawData.byteLength),i=d(t.dataType),s=t.rawData.byteLength/i;if(t.rawData.byteLength%i!=0)throw new Error("invalid buffer length");if(e.length!==s)throw new Error("buffer length mismatch");for(let r=0;r<s;r++){const s=f(n,t.dataType,r*i);e[r]=s}}else{let e;switch(t.dataType){case o.onnx.TensorProto.DataType.FLOAT:e=t.floatData;break;case o.onnx.TensorProto.DataType.INT32:case o.onnx.TensorProto.DataType.INT16:case o.onnx.TensorProto.DataType.UINT16:case o.onnx.TensorProto.DataType.INT8:case o.onnx.TensorProto.DataType.UINT8:case o.onnx.TensorProto.DataType.BOOL:e=t.int32Data;break;case o.onnx.TensorProto.DataType.INT64:e=t.int64Data;break;case o.onnx.TensorProto.DataType.DOUBLE:e=t.doubleData;break;case o.onnx.TensorProto.DataType.UINT32:case o.onnx.TensorProto.DataType.UINT64:e=t.uint64Data;break;default:throw new Error("unspecific error")}if(null==e)throw new Error("failed to populate data from a tensorproto value");const n=r.data;if(n.length!==e.length)throw new Error("array length mismatch");for(let r=0;r<e.length;r++){const i=e[r];s.default.isLong(i)?n[r]=p(i,t.dataType):n[r]=i}}return r}static fromData(t,e,n){return new c(e,n,void 0,void 0,t)}static fromOrtTensor(t){if(!t)throw new Error("cannot construct Value from an empty tensor");const e=u.ProtoUtil.tensorDimsFromORTFormat(t),n=u.ProtoUtil.tensorDataTypeFromProto(t.dataType()),r=new c(e,n);if("string"===n)for(let e=0;e<t.stringDataLength();e++)r.data[e]=t.stringData(e);else if(t.rawDataArray()&&"number"==typeof t.rawDataLength()&&t.rawDataLength()>0){const e=r.data,n=new DataView(t.rawDataArray().buffer,t.rawDataArray().byteOffset,t.rawDataLength()),i=d(t.dataType()),s=t.rawDataLength()/i;if(t.rawDataLength()%i!=0)throw new Error("invalid buffer length");if(e.length!==s)throw new Error("buffer length mismatch");for(let r=0;r<s;r++){const s=f(n,t.dataType(),r*i);e[r]=s}}return r}}function d(t){switch(t){case o.onnx.TensorProto.DataType.UINT8:case o.onnx.TensorProto.DataType.INT8:case o.onnx.TensorProto.DataType.BOOL:return 1;case o.onnx.TensorProto.DataType.UINT16:case o.onnx.TensorProto.DataType.INT16:return 2;case o.onnx.TensorProto.DataType.FLOAT:case o.onnx.TensorProto.DataType.INT32:case o.onnx.TensorProto.DataType.UINT32:return 4;case o.onnx.TensorProto.DataType.INT64:case o.onnx.TensorProto.DataType.DOUBLE:case o.onnx.TensorProto.DataType.UINT64:return 8;default:throw new Error(`cannot calculate sizeof() on type ${o.onnx.TensorProto.DataType[t]}`)}}function h(t){switch(t){case"bool":case"uint8":return Uint8Array;case"int8":return Int8Array;case"int16":return Int16Array;case"uint16":return Uint16Array;case"int32":return Int32Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;default:throw new Error("unspecified error")}}function p(t,e){if(e===o.onnx.TensorProto.DataType.INT64||e===l.TensorDataType.INT64){if(t.greaterThanOrEqual(2147483648)||t.lessThan(-2147483648))throw new TypeError("int64 is not supported")}else{if(e!==o.onnx.TensorProto.DataType.UINT32&&e!==l.TensorDataType.UINT32&&e!==o.onnx.TensorProto.DataType.UINT64&&e!==l.TensorDataType.UINT64)throw new TypeError(`not a LONG type: ${o.onnx.TensorProto.DataType[e]}`);if(t.greaterThanOrEqual(4294967296)||t.lessThan(0))throw new TypeError("uint64 is not supported")}return t.toNumber()}function f(t,e,n){switch(e){case o.onnx.TensorProto.DataType.BOOL:case o.onnx.TensorProto.DataType.UINT8:return t.getUint8(n);case o.onnx.TensorProto.DataType.INT8:return t.getInt8(n);case o.onnx.TensorProto.DataType.UINT16:return t.getUint16(n,!0);case o.onnx.TensorProto.DataType.INT16:return t.getInt16(n,!0);case o.onnx.TensorProto.DataType.FLOAT:return t.getFloat32(n,!0);case o.onnx.TensorProto.DataType.INT32:return t.getInt32(n,!0);case o.onnx.TensorProto.DataType.UINT32:return t.getUint32(n,!0);case o.onnx.TensorProto.DataType.INT64:return p(s.default.fromBits(t.getUint32(n,!0),t.getUint32(n+4,!0),!1),e);case o.onnx.TensorProto.DataType.DOUBLE:return t.getFloat64(n,!0);case o.onnx.TensorProto.DataType.UINT64:return p(s.default.fromBits(t.getUint32(n,!0),t.getUint32(n+4,!0),!0),e);default:throw new Error(`cannot read from DataView for type ${o.onnx.TensorProto.DataType[e]}`)}}e.Tensor=c},2517:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeUtf8String=e.MAX_CLIP=e.MIN_CLIP=e.PoolConvUtil=e.ReduceUtil=e.SplitUtil=e.MathUtil=e.ShapeUtil=e.LongUtil=e.ProtoUtil=e.GemmUtil=e.arrayCopyHelper=e.BroadcastUtil=e.MatMulUtil=e.ArrayUtil=e.assert=e.checkInputsShape=void 0;const i=n(5686),s=r(n(3720)),o=n(1446),a=n(9162);e.checkInputsShape=function(t,...e){if(!t||t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(!t[n].dims||t[n].dims.length!==e[n])return!1;return!0},e.assert=function(t,e){if(!t)throw new Error("string"==typeof e?e:e())},e.ArrayUtil=class{static arraysEqual(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}};class u{static preprocessInputShapes(t,e){return[1===t.length?[1,t[0]]:t,1===e.length?[e[0],1]:e]}static postprocessOutputShape(t,e,n){1===e&&t.splice(t.length-2,1),1===n&&t.pop()}static calcMatMulShape(t,e){return t[1]!==e[0]?void 0:[t[0],e[1]]}}e.MatMulUtil=u;class l{static calcShape(t,e,n=!1){const r=t.length,i=e.length;if(0===r)return e;if(0===i)return t;const s=Math.max(t.length,e.length),o=new Array(s);if(n){if(r<2||i<2)return;const n=u.calcMatMulShape([t[r-2],t[r-1]],[e[i-2],e[i-1]]);if(void 0===n)return;[o[s-2],o[s-1]]=n}for(let a=n?3:1;a<=s;a++){const n=r-a<0?1:t[r-a],u=i-a<0?1:e[i-a];if(n!==u&&n>1&&u>1)return;o[s-a]=Math.max(n,u)}return o}static index(t,e){const n=new Array(e.length);return l.fillIndex(t,e,n),n}static fillIndex(t,e,n){const r=t.length-e.length;for(let i=0;i<e.length;i++)n[i]=t[r+i]%e[i]}static calc(t,e,n,r,i){const s=l.calcShape(t.dims,e.dims);if(s){if(r&&!h.areEqual(s,t.dims))return;const o=h.size(s),u=r?t:new a.Tensor(s,i||t.type);if(0===s.length)u.set([],n(t.get([]),e.get([])));else{const r=new Array(s.length),i=new Array(t.dims.length),a=new Array(e.dims.length);let c,d=0,h=0,p=!1,f=!1;0===t.dims.length&&(d=t.get([]),p=!0),0===e.dims.length&&(h=e.get([]),f=!0);for(let g=0;g<o;g++){c=g;for(let t=s.length-1;t>=0;t--)r[t]=c%s[t],c=Math.floor(c/s[t]);p||(l.fillIndex(r,t.dims,i),d=t.get(i)),f||(l.fillIndex(r,e.dims,a),h=e.get(a)),u.set(r,n(d,h))}}return u}}static isValidBroadcast(t,e){const n=t.length,r=e.length;if(n>r)return!1;for(let i=1;i<=n;i++)if(1!==t[n-i]&&t[n-i]!==e[r-i])return!1;return!0}static getBroadcastDims(t,e){const n=t.length,r=[];for(let i=0;i<n;i++){const s=n-1-i,o=t[s]||1;(e[e.length-1-i]||1)>1&&1===o&&r.unshift(s)}return r}}e.BroadcastUtil=l,e.arrayCopyHelper=function(t,e,n,r,i){if(r<0||r>=e.length)throw new Error("sourceIndex out of bounds");if(n<0||n>=t.length)throw new Error("targetIndex out of bounds");if(r+i>e.length)throw new Error("source indices to be copied are outside bounds");if(n+i>t.length)throw new Error("target array is too small to hold result");for(let s=0;s<i;s++)t[n+s]=e[r+s]},e.GemmUtil=class{static getShapeOfGemmResult(t,e,n,r,i){if(2!==t.length||2!==n.length)throw new Error("shape need to be of size 2");let s,o,a;e?(s=t[1],o=t[0]):(s=t[0],o=t[1]);let u=-1;if(r?(a=n[0],u=1):(a=n[1],u=0),n[u]!==o)throw new Error("dimension mismatch");if(s<=0||a<=0||o<=0)throw new Error("invalid shape specified");if(i&&!l.isValidBroadcast(i,[s,a]))throw new Error("gemm: invalid bias shape for broadcast");return[s,a,o]}};class c{static tensorDataTypeFromProto(t){switch(t){case o.onnx.TensorProto.DataType.INT8:return"int8";case o.onnx.TensorProto.DataType.UINT8:return"uint8";case o.onnx.TensorProto.DataType.BOOL:return"bool";case o.onnx.TensorProto.DataType.INT16:return"int16";case o.onnx.TensorProto.DataType.UINT16:return"uint16";case o.onnx.TensorProto.DataType.INT32:return"int32";case o.onnx.TensorProto.DataType.UINT32:return"uint32";case o.onnx.TensorProto.DataType.FLOAT:return"float32";case o.onnx.TensorProto.DataType.DOUBLE:return"float64";case o.onnx.TensorProto.DataType.STRING:return"string";case o.onnx.TensorProto.DataType.INT64:return"int32";case o.onnx.TensorProto.DataType.UINT64:return"uint32";default:throw new Error(`unsupported data type: ${o.onnx.TensorProto.DataType[t]}`)}}static tensorDataTypeStringToEnum(t){switch(t){case"int8":return o.onnx.TensorProto.DataType.INT8;case"uint8":return o.onnx.TensorProto.DataType.UINT8;case"bool":return o.onnx.TensorProto.DataType.BOOL;case"int16":return o.onnx.TensorProto.DataType.INT16;case"uint16":return o.onnx.TensorProto.DataType.UINT16;case"int32":return o.onnx.TensorProto.DataType.INT32;case"uint32":return o.onnx.TensorProto.DataType.UINT32;case"float32":return o.onnx.TensorProto.DataType.FLOAT;case"float64":return o.onnx.TensorProto.DataType.DOUBLE;case"string":return o.onnx.TensorProto.DataType.STRING;case"int64":return o.onnx.TensorProto.DataType.INT64;case"uint64":return o.onnx.TensorProto.DataType.UINT64;default:throw new Error(`unsupported data type: ${t}`)}}static tensorDimsFromProto(t){return t.map((t=>s.default.isLong(t)?t.toNumber():t))}static tensorValueTypeFromProto(t){return{tensorType:c.tensorDataTypeFromProto(t.elemType),shape:{dims:c.tensorDimsFromProto(t.shape.dim.map((t=>t.dimValue)))}}}static tensorDimsFromORTFormat(t){const e=[];for(let n=0;n<t.dimsLength();n++)e.push(d.longToNumber(t.dims(n)));return e}static tensorAttributesFromORTFormat(t){const e=[];for(let n=0;n<t.attributesLength();n++)e.push(t.attributes(n));return e}}e.ProtoUtil=c;class d{static longToNumber(t,e){return s.default.isLong(t)?t.toNumber():t instanceof i.flatbuffers.Long?s.default.fromValue({low:t.low,high:t.high,unsigned:null!=e&&e}).toNumber():t}static isLong(t){return s.default.isLong(t)||t instanceof i.flatbuffers.Long}}e.LongUtil=d;class h{static size(t){return h.getSizeFromDimensionRange(t,0,t.length)}static sizeFromDimension(t,e){if(e<0||e>t.length)throw new Error(`invalid dimension of ${e} for sizeFromDimension as Tensor has ${t.length} dimensions.`);return h.getSizeFromDimensionRange(t,e,t.length)}static sizeToDimension(t,e){if(e<0||e>t.length)throw new Error(`invalid dimension of ${e} for sizeToDimension as Tensor has ${t.length} dimensions.`);return h.getSizeFromDimensionRange(t,0,e)}static getSizeFromDimensionRange(t,e,n){let r=1;for(let i=e;i<n;i++){if(t[i]<=0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains 0 or negative values in them.");r*=t[i]}return r}static computeStrides(t){const e=t.length;if(0===e)return[];if(1===e)return[1];const n=new Array(e);n[e-1]=1,n[e-2]=t[e-1];for(let r=e-3;r>=0;--r)n[r]=n[r+1]*t[r+1];return n}static transpose(t){return t.slice().reverse()}static indicesToOffset(t,e,n){void 0===n&&(n=t.length);let r=0;for(let i=0;i<n;++i)r+=e[i]*t[i];return r}static offsetToIndices(t,e){const n=e.length;if(0===n)return[];if(1===n)return[t*e[0]];const r=new Array(e.length);for(let n=0;n<r.length-1;++n)r[n]=Math.floor(t/e[n]),t-=r[n]*e[n];return r[r.length-1]=t,r}static normalizeAxis(t,e){if(t<-e&&t>=e)throw new Error("unsupported axis for this operation.");return t<0?t+e:t}static normalizeAxes(t,e){return t.map((t=>this.normalizeAxis(t,e)))}static incrementIndex(t,e,n){if(0===e.length||0===t.length)throw new Error("Index incrementing unsupported for scalar Tensor");if(void 0===n)n=e.length;else if(n<=0||n>e.length)throw new Error("Incorrect axis to increment on");for(let r=n-1;r>=0&&(t[r]++,!(t[r]<e[r]));--r)t[r]=0}static calculateReshapedDims(t,e){if(0===e.length){if(0===t.length||1===h.size(t))return[];throw new Error("cannot reshape to a scalar Tensor")}const n=e.length,r=new Array(n);let i=-1,s=1;for(let o=0;o<n;o++){if(e[o]<-1)throw new Error("a dimension in shape hints cannot be less than -1");if(-1===e[o]){if(-1!==i)throw new Error("at most one dimension in shape hints can be -1");i=o}else{if(0===e[o]){if(o>=t.length)throw new Error("the dimension with value zero exceeds the dimension size of the input tensor");r[o]=t[o]}else r[o]=e[o];s*=r[o]}}const o=h.size(t);if(-1!==i){if(o%s!=0)throw new Error(`the input tensor cannot be reshaped to the requested shape. Input shape: [${t}] Output shape: [${e}]`);r[i]=o/s}else if(s!==o)throw new Error("reshapedDims and originalDims don't have matching sizes");return r}static sortBasedOnPerm(t,e){return e?e.map((e=>t[e])):t.slice().reverse()}static padShape(t,e){const n=t.length;return t.map(((t,r)=>t+e[r]+e[r+n]))}static areEqual(t,e){return t.length===e.length&&t.every(((t,n)=>t===e[n]))}static validateDimsAndCalcSize(t){if(t.length>6)throw new TypeError("Only rank 0 to 6 is supported for tensor shape.");let e=1;for(const n of t){if(!Number.isInteger(n))throw new TypeError(`Invalid shape: ${n} is not an integer`);if(n<0||n>2147483647)throw new TypeError(`Invalid shape: length ${n} is not allowed`);e*=n}return e}static flattenShape(t,e){e<0&&(e+=t.length);const n=t.reduce(((t,e)=>t*e),1),r=t.slice(e).reduce(((t,e)=>t*e),1);return[n/r,r]}static squeezeShape(t,e){const n=new Array;e=h.normalizeAxes(e,t.length);for(let r=0;r<t.length;r++){const i=e.indexOf(r)>=0;if(i&&1!==t[r])throw new Error("squeeze an axis of size different than 1");(0===e.length&&t[r]>1||e.length>0&&!i)&&n.push(t[r])}return n}static unsqueezeShape(t,e){const n=new Array(t.length+e.length);n.fill(0);for(let t=0;t<e.length;t++){const r=h.normalizeAxis(e[t],n.length);if(r>=n.length)throw new Error("'axes' has an out of range axis");if(0!==n[r])throw new Error("'axes' has a duplicate axis");n[r]=1}let r=0;for(let e=0;e<n.length;e++)0===n[e]&&(n[e]=t[r++]);if(r!==t.length)throw new Error("the unsqueezed dimension could not be established");return n}}e.ShapeUtil=h,e.MathUtil=class{static sqr(t,e,n,r,i){if(r<0||r>=e.length)throw new Error("sourceIndex out of bounds");if(n<0||n>=t.length)throw new Error("targetIndex out of bounds");if(r+i>e.length)throw new Error("source indices to be copied are outside bounds");if(n+i>t.length)throw new Error("target array is too small to hold result");for(let s=0;s<i;s++)t[n+s]+=Math.pow(e[r+s],2)}static axpy(t,e,n,r,i,s){if(r<0||r>=e.length)throw new Error("sourceIndex out of bounds");if(n<0||n>=t.length)throw new Error("targetIndex out of bounds");if(r+i>e.length)throw new Error("source indices to be copied are outside bounds");if(n+i>t.length)throw new Error("target array is too small to hold result");for(let o=0;o<i;o++)t[n+o]+=s*e[r+o]}static powx(t,e,n,r,i,s){if(r<0||r>=e.length)throw new Error("sourceIndex out of bounds");if(n<0||n>=t.length)throw new Error("targetIndex out of bounds");if(r+i>e.length)throw new Error("source indices to be copied are outside bounds");if(n+i>t.length)throw new Error("target array is too small to hold result");for(let o=0;o<i;o++)t[n+o]=Math.pow(e[r+o],s)}static mul(t,e,n,r,i){if(r<0||r>=e.length)throw new Error("sourceIndex out of bounds");if(n<0||n>=t.length)throw new Error("targetIndex out of bounds");if(r+i>e.length)throw new Error("source indices to be copied are outside bounds");if(n+i>t.length)throw new Error("target array is too small to hold result");for(let s=0;s<i;s++)t[n+s]=e[r+s]*t[n+s]}};class p{static splitShape(t,e,n,r){if(0===n.length){if(!r)throw new Error("need to know number of outputs when the 'split' attribute is not specified");p.determineSplit(t[e],r,n)}const i=[],s=[0];for(let r=0;r<n.length;++r){0!==r&&s.push(s[r-1]+n[r-1]);const o=t.slice();o[e]=n[r],i.push(o)}return[i,s]}static determineSplit(t,e,n){if(t%e!=0)throw new Error("cannot split tensor to equal sized parts");for(let r=0;r<e;++r)n.push(t/e)}}e.SplitUtil=p;class f{static calcReduce(t,e,n,r,i){const s=t.dims.slice(0);0===e.length&&s.forEach(((t,n)=>e.push(n)));const o=f.calcReduceShape(s,e,!0),u=h.size(o),c=new a.Tensor(o,t.type),d=h.computeStrides(o),p=h.computeStrides(s),g=new Array(s.length);for(let n=0;n<u;n++){const o=h.offsetToIndices(n,d);l.fillIndex(o,s,g),c.set(o,f.calcReduceByAxis(t.numberData,e,s,0,h.indicesToOffset(g,p),r,i))}return n?c:new a.Tensor(f.calcReduceShape(s,e,n),c.type,void 0,void 0,c.data,c.dataId)}static calcReduceByAxis(t,e,n,r,i,s,o){let a=0;if(r>=e.length)return s(t[i]);const u=e[r],l=u>=n.length?1:h.size(n.slice(u+1));for(let c=0;c<n[u];c++)a=0===c?f.calcReduceByAxis(t,e,n,r+1,i,s,o):o(a,f.calcReduceByAxis(t,e,n,r+1,i,s,o)),i+=l;return a}static calcReduceShape(t,e,n){const r=t.slice();for(let t=0;t<e.length;t++)r[e[t]]=n?1:0;return r.filter((t=>0!==t))}}e.ReduceUtil=f;class g{static adjustPoolAttributes(t,e,n,r,i,s){if(!t&&n.length!==e.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(t)for(let t=0;t<e.length-2;t++)t>=n.length?n.push(e[t+2]):n[t]=e[t+2];for(let t=0;t<n.length;t++)if(t<r.length){if(r[t]<0)throw new Error("strides should be greater than or equal to 1")}else r.push(1);for(let t=0;t<n.length;t++)if(t<i.length){if(i[t]<0)throw new Error("dilations should be greater than or equal to 1")}else i.push(1);for(let t=0;t<2*n.length;t++)if(t<s.length){if(s[t]<0)throw new Error("pad should be greater than or equal to 1")}else s.push(0);for(let t=0;t<n.length;t++){if(n[t]<=0)throw new Error("kernel shapes need to be greater than 0");if(s[t]>=n[t]||s[t+n.length]>=n[t])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(t,e,n,r,i,s){if(s){if(i.length!==2*(t.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(e.length!==t.length-2)throw new Error("length of strides should be the length of data dimensions");if(r.length!==t.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let o=0;o<t.length-2;o++)g.adjustPadAndReturnShape(t[o+2],e[o],n[o],r[o],i,o,o+t.length-2,s)}}static computePoolOutputShape(t,e,n,r,i,s,o){if(e.length<=0)throw new Error("input shape must be of size greater than 0");const a=[e[0],e[1]];return g.computeShapeHelper(t,e,a,n,r,i,s,o),a}static computeConvOutputShape(t,e,n,r,i,s,o){if(t.length<=0||e.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");const a=[t[0],e[0]];return g.computeShapeHelper(!1,t,a,n,r,i,s,o),a}static computeShapeHelper(t,e,n,r,i,s,o,a){if(t)for(let t=0;t<e.length-2;t++)n.push(1);else for(let t=0;t<e.length-2;t++)n.push(g.adjustPadAndReturnShape(e[t+2],r[t],i[t],s[t],o,t,t+e.length-2,a))}static adjustPadAndReturnShape(t,e,n,r,i,s,o,a){const u=n*(r-1)+1;if(!a||"NOTSET"===a)return Math.floor((t+i[s]+i[o]-u)/e+1);switch(a){case"VALID":return i[s]=0,i[o]=0,Math.floor((t-u)/e+1);case"SAME_LOWER":case"SAME_UPPER":if(1!==n)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{const n=((t+e-1)/e-1)*e+r-t;return i[s]="SAME_LOWER"===a?Math.floor((n+1)/2):Math.floor(n/2),i[o]=n-i[s],Math.floor((t+n-r)/e+1)}default:throw new Error("Unsupported AutoPad type")}}}e.PoolConvUtil=g,e.MIN_CLIP=-34028234663852886e22,e.MAX_CLIP=34028234663852886e22,e.decodeUtf8String=function(t){return(new TextDecoder).decode(t)}},7967:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.iterateExtraOptions=void 0,e.iterateExtraOptions=(t,n,r,i)=>{if("object"==typeof t&&null!==t){if(r.has(t))throw new Error("Circular reference in options");r.add(t)}Object.entries(t).forEach((([t,s])=>{const o=n?n+t:t;if("object"==typeof s)(0,e.iterateExtraOptions)(s,o+".",r,i);else if("string"==typeof s||"number"==typeof s)i(o,s.toString());else{if("boolean"!=typeof s)throw new Error("Can't handle extra config type: "+typeof s);i(o,s?"1":"0")}}))}},2157:function(t,e,n){"use strict";var r,i=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),s=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return s(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.endProfiling=e.run=e.releaseSession=e.createSession=e.createSessionFinalize=e.createSessionAllocate=e.initOrt=e.initWasm=void 0;const a=n(1670),u=o(n(349)),l=n(6361),c=()=>!!a.env.wasm.proxy&&"undefined"!=typeof document;let d,h,p,f=!1,g=!1,m=!1;const _=[],b=[],y=[],w=[],v=[],x=[],T=()=>{if(f||!g||m||!d)throw new Error("worker not ready")},S=t=>{switch(t.data.type){case"init-wasm":f=!1,t.data.err?(m=!0,h[1](t.data.err)):(g=!0,h[0]());break;case"init-ort":t.data.err?p[1](t.data.err):p[0]();break;case"create_allocate":t.data.err?_.shift()[1](t.data.err):_.shift()[0](t.data.out);break;case"create_finalize":t.data.err?b.shift()[1](t.data.err):b.shift()[0](t.data.out);break;case"create":t.data.err?y.shift()[1](t.data.err):y.shift()[0](t.data.out);break;case"release":t.data.err?w.shift()[1](t.data.err):w.shift()[0]();break;case"run":t.data.err?v.shift()[1](t.data.err):v.shift()[0](t.data.out);break;case"end-profiling":t.data.err?x.shift()[1](t.data.err):x.shift()[0]()}},A="undefined"!=typeof document?null===(r=null===document||void 0===document?void 0:document.currentScript)||void 0===r?void 0:r.src:void 0;e.initWasm=async()=>{if(c()){if(g)return;if(f)throw new Error("multiple calls to 'initWasm()' detected.");if(m)throw new Error("previous call to 'initWasm()' failed.");return f=!0,void 0===a.env.wasm.wasmPaths&&A&&0!==A.indexOf("blob:")&&(a.env.wasm.wasmPaths=A.substr(0,+A.lastIndexOf("/")+1)),new Promise(((t,e)=>{null==d||d.terminate(),d=n(9710).Z(),d.onmessage=S,h=[t,e];const r={type:"init-wasm",in:a.env.wasm};d.postMessage(r)}))}return(0,l.initializeWebAssembly)(a.env.wasm)},e.initOrt=async(t,e)=>{if(c())return T(),new Promise(((n,r)=>{p=[n,r];const i={type:"init-ort",in:{numThreads:t,loggingLevel:e}};d.postMessage(i)}));u.initOrt(t,e)},e.createSessionAllocate=async t=>c()?(T(),new Promise(((e,n)=>{_.push([e,n]);const r={type:"create_allocate",in:{model:t}};d.postMessage(r,[t.buffer])}))):u.createSessionAllocate(t),e.createSessionFinalize=async(t,e)=>c()?(T(),new Promise(((n,r)=>{b.push([n,r]);const i={type:"create_finalize",in:{modeldata:t,options:e}};d.postMessage(i)}))):u.createSessionFinalize(t,e),e.createSession=async(t,e)=>c()?(T(),new Promise(((n,r)=>{y.push([n,r]);const i={type:"create",in:{model:t,options:e}};d.postMessage(i,[t.buffer])}))):u.createSession(t,e),e.releaseSession=async t=>{if(c())return T(),new Promise(((e,n)=>{w.push([e,n]);const r={type:"release",in:t};d.postMessage(r)}));u.releaseSession(t)},e.run=async(t,e,n,r,i)=>c()?(T(),new Promise(((s,o)=>{v.push([s,o]);const a={type:"run",in:{sessionId:t,inputIndices:e,inputs:n,outputIndices:r,options:i}};d.postMessage(a,u.extractTransferableBuffers(n))}))):u.run(t,e,n,r,i),e.endProfiling=async t=>{if(c())return T(),new Promise(((e,n)=>{x.push([e,n]);const r={type:"end-profiling",in:t};d.postMessage(r)}));u.endProfiling(t)}},586:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setRunOptions=void 0;const r=n(7967),i=n(4983),s=n(6361);e.setRunOptions=t=>{const e=(0,s.getInstance)();let n=0;const o=[],a=t||{};try{if(void 0===(null==t?void 0:t.logSeverityLevel))a.logSeverityLevel=2;else if("number"!=typeof t.logSeverityLevel||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${t.logSeverityLevel}`);if(void 0===(null==t?void 0:t.logVerbosityLevel))a.logVerbosityLevel=0;else if("number"!=typeof t.logVerbosityLevel||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);void 0===(null==t?void 0:t.terminate)&&(a.terminate=!1);let s=0;if(void 0!==(null==t?void 0:t.tag)&&(s=(0,i.allocWasmString)(t.tag,o)),n=e._OrtCreateRunOptions(a.logSeverityLevel,a.logVerbosityLevel,!!a.terminate,s),0===n)throw new Error("Can't create run options");return void 0!==(null==t?void 0:t.extra)&&(0,r.iterateExtraOptions)(t.extra,"",new WeakSet,((t,r)=>{const s=(0,i.allocWasmString)(t,o),a=(0,i.allocWasmString)(r,o);if(0!==e._OrtAddRunConfigEntry(n,s,a))throw new Error(`Can't set a run config entry: ${t} - ${r}`)})),[n,o]}catch(t){throw 0!==n&&e._OrtReleaseRunOptions(n),o.forEach(e._free),t}}},2306:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OnnxruntimeWebAssemblySessionHandler=void 0;const r=n(2806),i=n(1670),s=n(2850),o=n(2157);let a;e.OnnxruntimeWebAssemblySessionHandler=class{async createSessionAllocate(t){const e=await fetch(t),n=await e.arrayBuffer();return(0,o.createSessionAllocate)(new Uint8Array(n))}async loadModel(t,e){if(a||(await(0,o.initOrt)(i.env.wasm.numThreads,(t=>{switch(t){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${t}`)}})(i.env.logLevel)),a=!0),"string"==typeof t)if("undefined"==typeof fetch){const n=await(0,s.promisify)(r.readFile)(t);[this.sessionId,this.inputNames,this.outputNames]=await(0,o.createSession)(n,e)}else{const n=await this.createSessionAllocate(t);[this.sessionId,this.inputNames,this.outputNames]=await(0,o.createSessionFinalize)(n,e)}else[this.sessionId,this.inputNames,this.outputNames]=await(0,o.createSession)(t,e)}async dispose(){return(0,o.releaseSession)(this.sessionId)}async run(t,e,n){const r=[],s=[];Object.entries(t).forEach((t=>{const e=t[0],n=t[1],i=this.inputNames.indexOf(e);if(-1===i)throw new Error(`invalid input '${e}'`);r.push(n),s.push(i)}));const a=[];Object.entries(e).forEach((t=>{const e=t[0],n=this.outputNames.indexOf(e);if(-1===n)throw new Error(`invalid output '${e}'`);a.push(n)}));const u=await(0,o.run)(this.sessionId,s,r.map((t=>[t.type,t.dims,t.data])),a,n),l={};for(let t=0;t<u.length;t++)l[this.outputNames[a[t]]]=new i.Tensor(u[t][0],u[t][2],u[t][1]);return l}startProfiling(){}endProfiling(){(0,o.endProfiling)(this.sessionId)}}},4919:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setSessionOptions=void 0;const r=n(7967),i=n(4983),s=n(6361);e.setSessionOptions=t=>{const e=(0,s.getInstance)();let n=0;const o=[],a=t||{};(t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});const e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1")})(a);try{void 0===(null==t?void 0:t.graphOptimizationLevel)&&(a.graphOptimizationLevel="all");const u=(t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}})(a.graphOptimizationLevel);void 0===(null==t?void 0:t.enableCpuMemArena)&&(a.enableCpuMemArena=!0),void 0===(null==t?void 0:t.enableMemPattern)&&(a.enableMemPattern=!0),void 0===(null==t?void 0:t.executionMode)&&(a.executionMode="sequential");const l=(t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}})(a.executionMode);let c=0;if(void 0!==(null==t?void 0:t.logId)&&(c=(0,i.allocWasmString)(t.logId,o)),void 0===(null==t?void 0:t.logSeverityLevel))a.logSeverityLevel=2;else if("number"!=typeof t.logSeverityLevel||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${t.logSeverityLevel}`);if(void 0===(null==t?void 0:t.logVerbosityLevel))a.logVerbosityLevel=0;else if("number"!=typeof t.logVerbosityLevel||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);if(void 0===(null==t?void 0:t.enableProfiling)&&(a.enableProfiling=!1),n=e._OrtCreateSessionOptions(u,!!a.enableCpuMemArena,!!a.enableMemPattern,l,!!a.enableProfiling,0,c,a.logSeverityLevel,a.logVerbosityLevel),0===n)throw new Error("Can't create session options");return(null==t?void 0:t.executionProviders)&&((t,e,n)=>{for(const r of e){let e="string"==typeof r?r:r.name;switch(e){case"xnnpack":e="XNNPACK";break;case"wasm":case"cpu":continue;default:throw new Error(`not supported EP: ${e}`)}const o=(0,i.allocWasmString)(e,n);if(0!==(0,s.getInstance)()._OrtAppendExecutionProvider(t,o))throw new Error(`Can't append execution provider: ${e}`)}})(n,t.executionProviders,o),void 0!==(null==t?void 0:t.extra)&&(0,r.iterateExtraOptions)(t.extra,"",new WeakSet,((t,r)=>{const s=(0,i.allocWasmString)(t,o),a=(0,i.allocWasmString)(r,o);if(0!==e._OrtAddSessionConfigEntry(n,s,a))throw new Error(`Can't set a session config entry: ${t} - ${r}`)})),[n,o]}catch(t){throw 0!==n&&e._OrtReleaseSessionOptions(n),o.forEach(e._free),t}}},4983:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.allocWasmString=void 0;const r=n(6361);e.allocWasmString=(t,e)=>{const n=(0,r.getInstance)(),i=n.lengthBytesUTF8(t)+1,s=n._malloc(i);return n.stringToUTF8(t,s,i),e.push(s),s}},349:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.extractTransferableBuffers=e.endProfiling=e.run=e.releaseSession=e.createSession=e.createSessionFinalize=e.createSessionAllocate=e.initOrt=void 0;const r=n(586),i=n(4919),s=n(4983),o=n(6361);e.initOrt=(t,e)=>{const n=(0,o.getInstance)()._OrtInit(t,e);if(0!==n)throw new Error(`Can't initialize onnxruntime. error code = ${n}`)};const a=new Map;e.createSessionAllocate=t=>{const e=(0,o.getInstance)(),n=e._malloc(t.byteLength);return e.HEAPU8.set(t,n),[n,t.byteLength]},e.createSessionFinalize=(t,e)=>{const n=(0,o.getInstance)();let r=0,s=0,u=[];try{if([s,u]=(0,i.setSessionOptions)(e),r=n._OrtCreateSession(t[0],t[1],s),0===r)throw new Error("Can't create a session")}finally{n._free(t[0]),n._OrtReleaseSessionOptions(s),u.forEach(n._free)}const l=n._OrtGetInputCount(r),c=n._OrtGetOutputCount(r),d=[],h=[],p=[],f=[];for(let t=0;t<l;t++){const e=n._OrtGetInputName(r,t);if(0===e)throw new Error("Can't get an input name");h.push(e),d.push(n.UTF8ToString(e))}for(let t=0;t<c;t++){const e=n._OrtGetOutputName(r,t);if(0===e)throw new Error("Can't get an output name");f.push(e),p.push(n.UTF8ToString(e))}return a.set(r,[r,h,f]),[r,d,p]},e.createSession=(t,n)=>{const r=(0,e.createSessionAllocate)(t);return(0,e.createSessionFinalize)(r,n)},e.releaseSession=t=>{const e=(0,o.getInstance)(),n=a.get(t);if(!n)throw new Error("invalid session id");const r=n[0],i=n[1],s=n[2];i.forEach(e._OrtFree),s.forEach(e._OrtFree),e._OrtReleaseSession(r),a.delete(t)};const u=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;default:throw new Error(`unsupported data type: ${t}`)}},l=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";default:throw new Error(`unsupported data type: ${t}`)}},c=t=>{switch(t){case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}};e.run=(t,e,n,i,d)=>{const h=(0,o.getInstance)(),p=a.get(t);if(!p)throw new Error("invalid session id");const f=p[0],g=p[1],m=p[2],_=e.length,b=i.length;let y=0,w=[];const v=[],x=[];try{[y,w]=(0,r.setRunOptions)(d);for(let t=0;t<_;t++){const e=n[t][0],r=n[t][1],i=n[t][2];let o,a;if(Array.isArray(i)){a=4*i.length,o=h._malloc(a),x.push(o);let t=o/4;for(let e=0;e<i.length;e++){if("string"!=typeof i[e])throw new TypeError(`tensor data at index ${e} is not a string`);h.HEAPU32[t++]=(0,s.allocWasmString)(i[e],x)}}else a=i.byteLength,o=h._malloc(a),x.push(o),h.HEAPU8.set(new Uint8Array(i.buffer,i.byteOffset,a),o);const l=h.stackSave(),c=h.stackAlloc(4*r.length);try{let t=c/4;r.forEach((e=>h.HEAP32[t++]=e));const n=h._OrtCreateTensor(u(e),o,a,c,r.length);if(0===n)throw new Error("Can't create a tensor");v.push(n)}finally{h.stackRestore(l)}}const t=h.stackSave(),o=h.stackAlloc(4*_),a=h.stackAlloc(4*_),p=h.stackAlloc(4*b),T=h.stackAlloc(4*b);try{let t=o/4,n=a/4,r=p/4,s=T/4;for(let r=0;r<_;r++)h.HEAPU32[t++]=v[r],h.HEAPU32[n++]=g[e[r]];for(let t=0;t<b;t++)h.HEAPU32[r++]=0,h.HEAPU32[s++]=m[i[t]];let u=h._OrtRun(f,a,o,_,T,b,p,y);const d=[];if(0===u)for(let t=0;t<b;t++){const e=h.HEAPU32[p/4+t],n=h.stackSave(),r=h.stackAlloc(16);let i,s=0;try{if(u=h._OrtGetTensorData(e,r,r+4,r+8,r+12),0!==u)throw new Error(`Can't access output tensor data. error code = ${u}`);let t=r/4;const n=h.HEAPU32[t++];s=h.HEAPU32[t++];const o=h.HEAPU32[t++],a=h.HEAPU32[t++],p=[];for(let t=0;t<a;t++)p.push(h.HEAPU32[o/4+t]);h._OrtFree(o);const f=0===p.length?1:p.reduce(((t,e)=>t*e));if(i=l(n),"string"===i){const t=[];let e=s/4;for(let n=0;n<f;n++){const r=h.HEAPU32[e++],i=n===f-1?void 0:h.HEAPU32[e]-r;t.push(h.UTF8ToString(r,i))}d.push([i,p,t])}else{const t=new(c(i))(f);new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(h.HEAPU8.subarray(s,s+t.byteLength)),d.push([i,p,t])}}finally{h.stackRestore(n),"string"===i&&s&&h._free(s),h._OrtReleaseTensor(e)}}if(0===u)return d;throw new Error(`failed to call OrtRun(). error code = ${u}.`)}finally{h.stackRestore(t)}}finally{v.forEach(h._OrtReleaseTensor),x.forEach(h._free),h._OrtReleaseRunOptions(y),w.forEach(h._free)}},e.endProfiling=t=>{const e=(0,o.getInstance)(),n=a.get(t);if(!n)throw new Error("invalid session id");const r=n[0],i=e._OrtEndProfiling(r);if(0===i)throw new Error("Can't get an profile file name");e._OrtFree(i)},e.extractTransferableBuffers=t=>{const e=[];for(const n of t){const t=n[2];!Array.isArray(t)&&t.buffer&&e.push(t.buffer)}return e}},6361:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(e,n);i&&!("get"in i?!e.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,i)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),s=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return i(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.dispose=e.getInstance=e.initializeWebAssembly=void 0;const a=s(n(6449)),u=o(n(932)),l=n(3474);let c,d=!1,h=!1,p=!1;const f=(t,e)=>e?t?"ort-wasm-simd-threaded.wasm":"ort-wasm-threaded.wasm":t?"ort-wasm-simd.wasm":"ort-wasm.wasm";e.initializeWebAssembly=async t=>{if(d)return Promise.resolve();if(h)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(p)throw new Error("previous call to 'initializeWebAssembly()' failed.");h=!0;const e=t.initTimeout,r=t.numThreads,i=t.simd,s=r>1&&(()=>{try{return"undefined"!=typeof SharedArrayBuffer&&("undefined"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])))}catch(t){return!1}})(),o=i&&(()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch(t){return!1}})(),g="string"==typeof t.wasmPaths?t.wasmPaths:void 0,m=f(!1,s),_=f(o,s),b="object"==typeof t.wasmPaths?t.wasmPaths[_]:void 0;let y=!1;const w=[];if(e>0&&w.push(new Promise((t=>{setTimeout((()=>{y=!0,t()}),e)}))),w.push(new Promise(((t,e)=>{const r=s?l:u.default,i={locateFile:(t,e)=>s&&t.endsWith(".worker.js")&&"undefined"!=typeof Blob?URL.createObjectURL(new Blob([n(4154)],{type:"text/javascript"})):t===m?null!=b?b:(null!=g?g:e)+_:e+t};if(s)if("undefined"==typeof Blob)i.mainScriptUrlOrBlob=a.join("/","ort-wasm-threaded.js");else{const t=`var ortWasmThreaded=(function(){var _scriptDir;return ${r.toString()}})();`;i.mainScriptUrlOrBlob=new Blob([t],{type:"text/javascript"})}r(i).then((e=>{h=!1,d=!0,c=e,t()}),(t=>{h=!1,p=!0,e(t)}))}))),await Promise.race(w),y)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},e.getInstance=()=>{if(d&&c)return c;throw new Error("WebAssembly is not initialized yet.")},e.dispose=()=>{var t;!d||h||p||(h=!0,null===(t=c.PThread)||void 0===t||t.terminateAllThreads(),c=void 0,h=!1,d=!1,p=!0)}},9710:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(477),i=n.n(r);function s(){return i()('/*!\n* ONNX Runtime Web v1.14.0\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License.\n*/\n(()=>{var t={474:(t,e,n)=>{var _scriptDir,r=(_scriptDir=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(t){function e(){return j.buffer!=D&&N(j.buffer),P}function r(){return j.buffer!=D&&N(j.buffer),U}function a(){return j.buffer!=D&&N(j.buffer),F}function i(){return j.buffer!=D&&N(j.buffer),I}function o(){return j.buffer!=D&&N(j.buffer),W}var u,c,s;t=t||{},u||(u=void 0!==t?t:{}),u.ready=new Promise((function(t,e){c=t,s=e}));var l,f,p,h,d,y,b=Object.assign({},u),m="./this.program",g=(t,e)=>{throw e},v="object"==typeof window,w="function"==typeof importScripts,_="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,O=u.ENVIRONMENT_IS_PTHREAD||!1,A="";function S(t){return u.locateFile?u.locateFile(t,A):A+t}if(_){let e;A=w?n(908).dirname(A)+"/":"//",y=()=>{d||(h=n(384),d=n(908))},l=function(t,e){return y(),t=d.normalize(t),h.readFileSync(t,e?void 0:"utf8")},p=t=>((t=l(t,!0)).buffer||(t=new Uint8Array(t)),t),f=(t,e,n)=>{y(),t=d.normalize(t),h.readFile(t,(function(t,r){t?n(t):e(r.buffer)}))},1<process.argv.length&&(m=process.argv[1].replace(/\\\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof ct))throw t})),process.on("unhandledRejection",(function(t){throw t})),g=(t,e)=>{if(Q())throw process.exitCode=t,e;e instanceof ct||x("exiting due to exception: "+e),process.exit(t)},u.inspect=function(){return"[Emscripten Module object]"};try{e=n(925)}catch(t){throw console.error(\'The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?\'),t}n.g.Worker=e.Worker}else(v||w)&&(w?A=self.location.href:"undefined"!=typeof document&&document.currentScript&&(A=document.currentScript.src),_scriptDir&&(A=_scriptDir),A=0!==A.indexOf("blob:")?A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):"",_||(l=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},w&&(p=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),f=(t,e,n)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)}));_&&"undefined"==typeof performance&&(n.g.performance=n(953).performance);var T=console.log.bind(console),E=console.warn.bind(console);_&&(y(),T=t=>h.writeSync(1,t+"\\n"),E=t=>h.writeSync(2,t+"\\n"));var M,C=u.print||T,x=u.printErr||E;Object.assign(u,b),b=null,u.thisProgram&&(m=u.thisProgram),u.quit&&(g=u.quit),u.wasmBinary&&(M=u.wasmBinary);var R=u.noExitRuntime||!1;"object"!=typeof WebAssembly&&at("no native wasm support detected");var j,k,D,P,U,F,I,W,H=!1,L="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function z(t,e,n){var r=(e>>>=0)+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.buffer&&L)return L.decode(t.buffer instanceof SharedArrayBuffer?t.slice(e,n):t.subarray(e,n));for(r="";e<n;){var a=t[e++];if(128&a){var i=63&t[e++];if(192==(224&a))r+=String.fromCharCode((31&a)<<6|i);else{var o=63&t[e++];65536>(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&t[e++])?r+=String.fromCharCode(a):(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else r+=String.fromCharCode(a)}return r}function Y(t,e){return(t>>>=0)?z(r(),t,e):""}function B(t,e,n,r){if(!(0<r))return 0;var a=n>>>=0;r=n+r-1;for(var i=0;i<t.length;++i){var o=t.charCodeAt(i);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++i)),127>=o){if(n>=r)break;e[n++>>>0]=o}else{if(2047>=o){if(n+1>=r)break;e[n++>>>0]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++>>>0]=224|o>>12}else{if(n+3>=r)break;e[n++>>>0]=240|o>>18,e[n++>>>0]=128|o>>12&63}e[n++>>>0]=128|o>>6&63}e[n++>>>0]=128|63&o}}return e[n>>>0]=0,n-a}function G(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);127>=r?e++:2047>=r?e+=2:55296<=r&&57343>=r?(e+=4,++n):e+=3}return e}function N(t){D=t,u.HEAP8=P=new Int8Array(t),u.HEAP16=new Int16Array(t),u.HEAP32=F=new Int32Array(t),u.HEAPU8=U=new Uint8Array(t),u.HEAPU16=new Uint16Array(t),u.HEAPU32=I=new Uint32Array(t),u.HEAPF32=new Float32Array(t),u.HEAPF64=W=new Float64Array(t)}O&&(D=u.buffer);var V=u.INITIAL_MEMORY||16777216;if(O)j=u.wasmMemory,D=u.buffer;else if(u.wasmMemory)j=u.wasmMemory;else if(!((j=new WebAssembly.Memory({initial:V/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw x("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),_&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");j&&(D=j.buffer),V=D.byteLength,N(D);var $,q=[],X=[],J=[],Z=[];function Q(){return R||!1}function K(){var t=u.preRun.shift();q.unshift(t)}var tt,et=0,nt=null,rt=null;function at(t){throw O?postMessage({cmd:"onAbort",arg:t}):u.onAbort&&u.onAbort(t),x(t="Aborted("+t+")"),H=!0,t=new WebAssembly.RuntimeError(t+". Build with -sASSERTIONS for more info."),s(t),t}function it(){return tt.startsWith("data:application/octet-stream;base64,")}function ot(){var t=tt;try{if(t==tt&&M)return new Uint8Array(M);if(p)return p(t);throw"both async and sync fetching of the wasm failed"}catch(t){at(t)}}tt="ort-wasm-threaded.wasm",it()||(tt=S(tt));var ut={};function ct(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function st(t){(t=ht.Vb[t])||at(),ht.mc(t)}function lt(t){var e=ht.Cc();if(!e)return 6;ht.ac.push(e),ht.Vb[t.Ub]=e,e.Ub=t.Ub;var n={cmd:"run",start_routine:t.Ic,arg:t.zc,pthread_ptr:t.Ub};return e.$b=()=>{n.time=performance.now(),e.postMessage(n,t.Nc)},e.loaded&&(e.$b(),delete e.$b),0}function ft(t){if(O)return $t(1,1,t);Q()||(ht.oc(),u.onExit&&u.onExit(t),H=!0),g(t,new ct(t))}function pt(t,e){if(!e&&O)throw bt(t),"unwind";Q()||O||(me(),dt(J),be(0),re[1].length&&ae(1,10),re[2].length&&ae(2,10),ht.oc()),ft(t)}var ht={Yb:[],ac:[],qc:[],Vb:{},fc:function(){O&&ht.Ec()},Pc:function(){},Ec:function(){ht.receiveObjectTransfer=ht.Gc,ht.threadInitTLS=ht.pc,ht.setExitStatus=ht.nc,R=!1},nc:function(){},oc:function(){for(var t of Object.values(ht.Vb))ht.mc(t);for(t of ht.Yb)t.terminate();ht.Yb=[]},mc:function(t){var e=t.Ub;delete ht.Vb[e],ht.Yb.push(t),ht.ac.splice(ht.ac.indexOf(t),1),t.Ub=0,Oe(e)},Gc:function(){},pc:function(){ht.qc.forEach((t=>t()))},Fc:function(t,e){t.onmessage=n=>{var r=(n=n.data).cmd;if(t.Ub&&(ht.Bc=t.Ub),n.targetThread&&n.targetThread!=he()){var a=ht.Vb[n.Qc];a?a.postMessage(n,n.transferList):x(\'Internal error! Worker sent a message "\'+r+\'" to target pthread \'+n.targetThread+", but that thread no longer exists!")}else"processProxyingQueue"===r?zt(n.queue):"spawnThread"===r?lt(n):"cleanupThread"===r?st(n.thread):"killThread"===r?(n=n.thread,r=ht.Vb[n],delete ht.Vb[n],r.terminate(),Oe(n),ht.ac.splice(ht.ac.indexOf(r),1),r.Ub=0):"cancelThread"===r?ht.Vb[n.thread].postMessage({cmd:"cancel"}):"loaded"===r?(t.loaded=!0,e&&e(t),t.$b&&(t.$b(),delete t.$b)):"print"===r?C("Thread "+n.threadId+": "+n.text):"printErr"===r?x("Thread "+n.threadId+": "+n.text):"alert"===r?alert("Thread "+n.threadId+": "+n.text):"setimmediate"===n.target?t.postMessage(n):"onAbort"===r?u.onAbort&&u.onAbort(n.arg):r&&x("worker sent an unknown command "+r);ht.Bc=void 0},t.onerror=t=>{throw x("worker sent an error! "+t.filename+":"+t.lineno+": "+t.message),t},_&&(t.on("message",(function(e){t.onmessage({data:e})})),t.on("error",(function(e){t.onerror(e)})),t.on("detachedExit",(function(){}))),t.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||_scriptDir,wasmMemory:j,wasmModule:k})},yc:function(){var t=S("ort-wasm-threaded.worker.js");ht.Yb.push(new Worker(t))},Cc:function(){return 0==ht.Yb.length&&(ht.yc(),ht.Fc(ht.Yb[0])),ht.Yb.pop()}};function dt(t){for(;0<t.length;)t.shift()(u)}function yt(t){var e=Ee();return t=t(),Me(e),t}function bt(t){if(O)return $t(2,0,t);try{pt(t)}catch(t){t instanceof ct||"unwind"==t||g(1,t)}}u.PThread=ht,u.establishStackSpace=function(){var t=he(),e=a()[t+44>>2>>>0];t=a()[t+48>>2>>>0],Te(e,e-t),Me(e)};var mt=[];function gt(t){var e=mt[t];return e||(t>=mt.length&&(mt.length=t+1),mt[t]=e=$.get(t)),e}u.invokeEntryPoint=function(t,e){t=gt(t)(e),Q()?ht.nc(t):Ae(t)};var vt,wt,_t=[],Ot=0,At=0;function St(t){this.Zb=t,this.Sb=t-24,this.xc=function(t){i()[this.Sb+4>>2>>>0]=t},this.bc=function(){return i()[this.Sb+4>>2>>>0]},this.wc=function(t){i()[this.Sb+8>>2>>>0]=t},this.Dc=function(){return i()[this.Sb+8>>2>>>0]},this.rc=function(){a()[this.Sb>>2>>>0]=0},this.hc=function(t){t=t?1:0,e()[this.Sb+12>>0>>>0]=t},this.uc=function(){return 0!=e()[this.Sb+12>>0>>>0]},this.ic=function(t){t=t?1:0,e()[this.Sb+13>>0>>>0]=t},this.kc=function(){return 0!=e()[this.Sb+13>>0>>>0]},this.fc=function(t,e){this.cc(0),this.xc(t),this.wc(e),this.rc(),this.hc(!1),this.ic(!1)},this.sc=function(){Atomics.add(a(),this.Sb>>2,1)},this.Hc=function(){return 1===Atomics.sub(a(),this.Sb>>2,1)},this.cc=function(t){i()[this.Sb+16>>2>>>0]=t},this.tc=function(){return i()[this.Sb+16>>2>>>0]},this.vc=function(){if(Re(this.bc()))return i()[this.Zb>>2>>>0];var t=this.tc();return 0!==t?t:this.Zb}}function Tt(t){return ye(new St(t).Sb)}function Et(t,e,n,r){return O?$t(3,1,t,e,n,r):Mt(t,e,n,r)}function Mt(t,e,n,r){if("undefined"==typeof SharedArrayBuffer)return x("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var a=[];return O&&0===a.length?Et(t,e,n,r):(t={Ic:n,Ub:t,zc:r,Nc:a},O?(t.Oc="spawnThread",postMessage(t,a),0):lt(t))}function Ct(t,e,n){return O?$t(4,1,t,e,n):0}function xt(t,e){if(O)return $t(5,1,t,e)}function Rt(t,e){if(O)return $t(6,1,t,e)}function jt(t,e,n){if(O)return $t(7,1,t,e,n)}function kt(t,e,n){return O?$t(8,1,t,e,n):0}function Dt(t,e){if(O)return $t(9,1,t,e)}function Pt(t,e,n){if(O)return $t(10,1,t,e,n)}function Ut(t,e,n,r){if(O)return $t(11,1,t,e,n,r)}function Ft(t,e,n,r){if(O)return $t(12,1,t,e,n,r)}function It(t,e,n,r){if(O)return $t(13,1,t,e,n,r)}function Wt(t){if(O)return $t(14,1,t)}function Ht(t,e){if(O)return $t(15,1,t,e)}function Lt(t,e,n){if(O)return $t(16,1,t,e,n)}function zt(t){Atomics.store(a(),t>>2,1),he()&&_e(t),Atomics.compareExchange(a(),t>>2,1,0)}function Yt(t){return i()[t>>>2]+4294967296*a()[t+4>>>2]}function Bt(t,e,n,r,a,i){return O?$t(17,1,t,e,n,r,a,i):-52}function Gt(t,e,n,r,a,i){if(O)return $t(18,1,t,e,n,r,a,i)}function Nt(t){var n=G(t)+1,r=de(n);return r&&B(t,e(),r,n),r}function Vt(t,e,n){function r(t){return(t=t.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?t[1]:"GMT"}if(O)return $t(19,1,t,e,n);var o=(new Date).getFullYear(),u=new Date(o,0,1),c=new Date(o,6,1);o=u.getTimezoneOffset();var s=c.getTimezoneOffset(),l=Math.max(o,s);a()[t>>2>>>0]=60*l,a()[e>>2>>>0]=Number(o!=s),t=r(u),e=r(c),t=Nt(t),e=Nt(e),s<o?(i()[n>>2>>>0]=t,i()[n+4>>2>>>0]=e):(i()[n>>2>>>0]=e,i()[n+4>>2>>>0]=t)}function $t(t,e){var n=arguments.length-2,r=arguments;return yt((()=>{for(var a=Ce(8*n),i=a>>3,u=0;u<n;u++){var c=r[2+u];o()[i+u>>>0]=c}return we(t,n,a,e)}))}u.executeNotifiedProxyingQueue=zt,wt=_?()=>{var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:O?()=>performance.now()-u.__performance_now_clock_drift:()=>performance.now();var qt,Xt=[],Jt={};function Zt(){if(!qt){var t,e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:m||"./this.program"};for(t in Jt)void 0===Jt[t]?delete e[t]:e[t]=Jt[t];var n=[];for(t in e)n.push(t+"="+e[t]);qt=n}return qt}function Qt(t,n){if(O)return $t(20,1,t,n);var r=0;return Zt().forEach((function(a,o){var u=n+r;for(o=i()[t+4*o>>2>>>0]=u,u=0;u<a.length;++u)e()[o++>>0>>>0]=a.charCodeAt(u);e()[o>>0>>>0]=0,r+=a.length+1})),0}function Kt(t,e){if(O)return $t(21,1,t,e);var n=Zt();i()[t>>2>>>0]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),i()[e>>2>>>0]=r,0}function te(t){return O?$t(22,1,t):52}function ee(t,e,n,r){return O?$t(23,1,t,e,n,r):52}function ne(t,e,n,r,a){return O?$t(24,1,t,e,n,r,a):70}var re=[null,[],[]];function ae(t,e){var n=re[t];0===e||10===e?((1===t?C:x)(z(n,0)),n.length=0):n.push(e)}function ie(t,e,n,a){if(O)return $t(25,1,t,e,n,a);for(var o=0,u=0;u<n;u++){var c=i()[e>>2>>>0],s=i()[e+4>>2>>>0];e+=8;for(var l=0;l<s;l++)ae(t,r()[c+l>>>0]);o+=s}return i()[a>>2>>>0]=o,0}var oe=0;function ue(t){return 0==t%4&&(0!=t%100||0==t%400)}var ce=[31,29,31,30,31,30,31,31,30,31,30,31],se=[31,28,31,30,31,30,31,31,30,31,30,31];function le(t,n,r,i){function o(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function u(t,e){return o(t,e,"0")}function c(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function s(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function l(t){var e=t.Wb;for(t=new Date(new Date(t.Xb+1900,0,1).getTime());0<e;){var n=t.getMonth(),r=(ue(t.getFullYear())?ce:se)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return n=new Date(t.getFullYear()+1,0,4),e=s(new Date(t.getFullYear(),0,4)),n=s(n),0>=c(e,t)?0>=c(n,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var f=a()[i+40>>2>>>0];for(var p in i={Lc:a()[i>>2>>>0],Kc:a()[i+4>>2>>>0],dc:a()[i+8>>2>>>0],jc:a()[i+12>>2>>>0],ec:a()[i+16>>2>>>0],Xb:a()[i+20>>2>>>0],Tb:a()[i+24>>2>>>0],Wb:a()[i+28>>2>>>0],Rc:a()[i+32>>2>>>0],Jc:a()[i+36>>2>>>0],Mc:f?Y(f):""},r=Y(r),f={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})r=r.replace(new RegExp(p,"g"),f[p]);var h="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),d="January February March April May June July August September October November December".split(" ");for(p in f={"%a":function(t){return h[t.Tb].substring(0,3)},"%A":function(t){return h[t.Tb]},"%b":function(t){return d[t.ec].substring(0,3)},"%B":function(t){return d[t.ec]},"%C":function(t){return u((t.Xb+1900)/100|0,2)},"%d":function(t){return u(t.jc,2)},"%e":function(t){return o(t.jc,2," ")},"%g":function(t){return l(t).toString().substring(2)},"%G":function(t){return l(t)},"%H":function(t){return u(t.dc,2)},"%I":function(t){return 0==(t=t.dc)?t=12:12<t&&(t-=12),u(t,2)},"%j":function(t){for(var e=0,n=0;n<=t.ec-1;e+=(ue(t.Xb+1900)?ce:se)[n++]);return u(t.jc+e,3)},"%m":function(t){return u(t.ec+1,2)},"%M":function(t){return u(t.Kc,2)},"%n":function(){return"\\n"},"%p":function(t){return 0<=t.dc&&12>t.dc?"AM":"PM"},"%S":function(t){return u(t.Lc,2)},"%t":function(){return"\\t"},"%u":function(t){return t.Tb||7},"%U":function(t){return u(Math.floor((t.Wb+7-t.Tb)/7),2)},"%V":function(t){var e=Math.floor((t.Wb+7-(t.Tb+6)%7)/7);if(2>=(t.Tb+371-t.Wb-2)%7&&e++,e)53==e&&(4==(n=(t.Tb+371-t.Wb)%7)||3==n&&ue(t.Xb)||(e=1));else{e=52;var n=(t.Tb+7-t.Wb-1)%7;(4==n||5==n&&ue(t.Xb%400-1))&&e++}return u(e,2)},"%w":function(t){return t.Tb},"%W":function(t){return u(Math.floor((t.Wb+7-(t.Tb+6)%7)/7),2)},"%y":function(t){return(t.Xb+1900).toString().substring(2)},"%Y":function(t){return t.Xb+1900},"%z":function(t){var e=0<=(t=t.Jc);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.Mc},"%%":function(){return"%"}},r=r.replace(/%%/g,"\\0\\0"),f)r.includes(p)&&(r=r.replace(new RegExp(p,"g"),f[p](i)));return p=function(t){var e=Array(G(t)+1);return B(t,e,0,e.length),e}(r=r.replace(/\\0\\0/g,"%")),p.length>n?0:(function(t,n){e().set(t,n>>>0)}(p,t),p.length-1)}ht.fc();var fe=[null,ft,bt,Et,Ct,xt,Rt,jt,kt,Dt,Pt,Ut,Ft,It,Wt,Ht,Lt,Bt,Gt,Vt,Qt,Kt,te,ee,ne,ie],pe={b:function(t){return de(t+24)+24},n:function(t){return(t=new St(t)).uc()||(t.hc(!0),Ot--),t.ic(!1),_t.push(t),t.sc(),t.vc()},ma:function(t){throw x("Unexpected exception thrown, this is not properly supported - aborting"),H=!0,t},x:function(){Se(0);var t=_t.pop();if(t.Hc()&&!t.kc()){var e=t.Dc();e&&gt(e)(t.Zb),Tt(t.Zb)}At=0},e:function(){var t=At;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(xe(i,n,e.Sb+16))return oe=i,t}return oe=n,t},l:function(){var t=At;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(xe(i,n,e.Sb+16))return oe=i,t}return oe=n,t},h:function(){var t=At;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(xe(i,n,e.Sb+16))return oe=i,t}return oe=n,t},t:Tt,M:function(){var t=_t.pop();t||at("no exception to throw");var e=t.Zb;throw t.kc()||(_t.push(t),t.ic(!0),t.hc(!1),Ot++),At=e,e},c:function(t,e,n){throw new St(t).fc(e,n),At=t,Ot++,t},pa:function(){return Ot},Fa:function(t){ge(t,!w,1,!v),ht.pc()},T:function(t){O?postMessage({cmd:"cleanupThread",thread:t}):st(t)},xa:Mt,j:function(t){throw At||(At=t),t},H:Ct,Ma:xt,ua:Rt,wa:jt,oa:kt,Ka:Dt,Ca:Pt,Ja:Ut,V:Ft,va:It,sa:Wt,La:Ht,ta:Lt,Ta:function(){},X:function(){at("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ua:function(){at("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},W:function(){return Date.now()},ya:function(){return 2097152},Oa:function(){return!0},za:function(t,e,n,r){if(t==e)setTimeout((()=>zt(r)));else if(O)postMessage({targetThread:t,cmd:"processProxyingQueue",queue:r});else{if(!(t=ht.Vb[t]))return;t.postMessage({cmd:"processProxyingQueue",queue:r})}return 1},Ea:function(){return-1},Pa:function(t,e){t=new Date(1e3*Yt(t)),a()[e>>2>>>0]=t.getUTCSeconds(),a()[e+4>>2>>>0]=t.getUTCMinutes(),a()[e+8>>2>>>0]=t.getUTCHours(),a()[e+12>>2>>>0]=t.getUTCDate(),a()[e+16>>2>>>0]=t.getUTCMonth(),a()[e+20>>2>>>0]=t.getUTCFullYear()-1900,a()[e+24>>2>>>0]=t.getUTCDay(),t=(t.getTime()-Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,a()[e+28>>2>>>0]=t},Qa:function(t,e){t=new Date(1e3*Yt(t)),a()[e>>2>>>0]=t.getSeconds(),a()[e+4>>2>>>0]=t.getMinutes(),a()[e+8>>2>>>0]=t.getHours(),a()[e+12>>2>>>0]=t.getDate(),a()[e+16>>2>>>0]=t.getMonth(),a()[e+20>>2>>>0]=t.getFullYear()-1900,a()[e+24>>2>>>0]=t.getDay();var n=new Date(t.getFullYear(),0,1),r=(t.getTime()-n.getTime())/864e5|0;a()[e+28>>2>>>0]=r,a()[e+36>>2>>>0]=-60*t.getTimezoneOffset(),r=new Date(t.getFullYear(),6,1).getTimezoneOffset(),t=0|(r!=(n=n.getTimezoneOffset())&&t.getTimezoneOffset()==Math.min(n,r)),a()[e+32>>2>>>0]=t},Ra:function(t){var e=new Date(a()[t+20>>2>>>0]+1900,a()[t+16>>2>>>0],a()[t+12>>2>>>0],a()[t+8>>2>>>0],a()[t+4>>2>>>0],a()[t>>2>>>0],0),n=a()[t+32>>2>>>0],r=e.getTimezoneOffset(),i=new Date(e.getFullYear(),0,1),o=new Date(e.getFullYear(),6,1).getTimezoneOffset(),u=i.getTimezoneOffset(),c=Math.min(u,o);return 0>n?a()[t+32>>2>>>0]=Number(o!=u&&c==r):0<n!=(c==r)&&(o=Math.max(u,o),e.setTime(e.getTime()+6e4*((0<n?c:o)-r))),a()[t+24>>2>>>0]=e.getDay(),n=(e.getTime()-i.getTime())/864e5|0,a()[t+28>>2>>>0]=n,a()[t>>2>>>0]=e.getSeconds(),a()[t+4>>2>>>0]=e.getMinutes(),a()[t+8>>2>>>0]=e.getHours(),a()[t+12>>2>>>0]=e.getDate(),a()[t+16>>2>>>0]=e.getMonth(),e.getTime()/1e3|0},Aa:Bt,Ba:Gt,Sa:function t(e,n,r){t.Ac||(t.Ac=!0,Vt(e,n,r))},y:function(){at("")},U:function(){if(!_&&!w){var t="Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread";vt||(vt={}),vt[t]||(vt[t]=1,_&&(t="warning: "+t),x(t))}},ra:function(){return 4294901760},B:wt,Ia:function(t,e,n){r().copyWithin(t>>>0,e>>>0,e+n>>>0)},F:function(){return _?n(993).cpus().length:navigator.hardwareConcurrency},Da:function(t,e,n){Xt.length=e,n>>=3;for(var r=0;r<e;r++)Xt[r]=o()[n+r>>>0];return(0>t?ut[-t-1]:fe[t]).apply(null,Xt)},qa:function(t){var e=r().length;if((t>>>=0)<=e||4294901760<t)return!1;for(var n=1;4>=n;n*=2){var a=e*(1+.2/n);a=Math.min(a,t+100663296);var i=Math;a=Math.max(t,a),i=i.min.call(i,4294901760,a+(65536-a%65536)%65536);t:{try{j.grow(i-D.byteLength+65535>>>16),N(j.buffer);var o=1;break t}catch(t){}o=void 0}if(o)return!0}return!1},Na:function(){throw"unwind"},Ga:Qt,Ha:Kt,J:pt,I:te,S:ee,ga:ne,R:ie,d:function(){return oe},na:function t(r,a){t.lc||(t.lc=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);return()=>(crypto.getRandomValues(t),t[0])}if(_)try{var e=n(Object(function(){var t=new Error("Cannot find module \'crypto\'");throw t.code="MODULE_NOT_FOUND",t}()));return()=>e.randomBytes(1)[0]}catch(t){}return()=>at("randomDevice")}());for(var i=0;i<a;i++)e()[r+i>>0>>>0]=t.lc();return 0},ia:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},ja:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},K:function(t){var e=Ee();try{return gt(t)()}catch(t){if(Me(e),t!==t+0)throw t;Se(1,0)}},f:function(t,e){var n=Ee();try{return gt(t)(e)}catch(t){if(Me(n),t!==t+0)throw t;Se(1,0)}},P:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},Q:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},k:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},p:function(t,e,n,r){var a=Ee();try{return gt(t)(e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},q:function(t,e,n,r,a){var i=Ee();try{return gt(t)(e,n,r,a)}catch(t){if(Me(i),t!==t+0)throw t;Se(1,0)}},N:function(t,e,n,r,a,i){var o=Ee();try{return gt(t)(e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},s:function(t,e,n,r,a,i){var o=Ee();try{return gt(t)(e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},w:function(t,e,n,r,a,i,o){var u=Ee();try{return gt(t)(e,n,r,a,i,o)}catch(t){if(Me(u),t!==t+0)throw t;Se(1,0)}},L:function(t,e,n,r,a,i,o,u){var c=Ee();try{return gt(t)(e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},E:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=Ee();try{return gt(t)(e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(Me(p),t!==t+0)throw t;Se(1,0)}},aa:function(t,e,n,r,a,i,o,u){var c=Ee();try{return He(t,e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},_:function(t,e,n,r,a,i,o){var u=Ee();try{return ke(t,e,n,r,a,i,o)}catch(t){if(Me(u),t!==t+0)throw t;Se(1,0)}},Z:function(t,e,n,r,a){var i=Ee();try{return Le(t,e,n,r,a)}catch(t){if(Me(i),t!==t+0)throw t;Se(1,0)}},ca:function(t,e,n,r){var a=Ee();try{return Ie(t,e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},$:function(t){var e=Ee();try{return je(t)}catch(t){if(Me(e),t!==t+0)throw t;Se(1,0)}},ba:function(t,e){var n=Ee();try{return We(t,e)}catch(t){if(Me(n),t!==t+0)throw t;Se(1,0)}},Y:function(t,e,n){var r=Ee();try{return De(t,e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},g:function(t){var e=Ee();try{gt(t)()}catch(t){if(Me(e),t!==t+0)throw t;Se(1,0)}},r:function(t,e){var n=Ee();try{gt(t)(e)}catch(t){if(Me(n),t!==t+0)throw t;Se(1,0)}},i:function(t,e,n){var r=Ee();try{gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},ha:function(t,e,n,r){var a=Ee();try{gt(t)(e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},m:function(t,e,n,r){var a=Ee();try{gt(t)(e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},v:function(t,e,n,r,a){var i=Ee();try{gt(t)(e,n,r,a)}catch(t){if(Me(i),t!==t+0)throw t;Se(1,0)}},u:function(t,e,n,r,a,i){var o=Ee();try{gt(t)(e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},O:function(t,e,n,r,a,i,o){var u=Ee();try{gt(t)(e,n,r,a,i,o)}catch(t){if(Me(u),t!==t+0)throw t;Se(1,0)}},A:function(t,e,n,r,a,i,o,u){var c=Ee();try{gt(t)(e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},ka:function(t,e,n,r,a,i,o,u,c){var s=Ee();try{gt(t)(e,n,r,a,i,o,u,c)}catch(t){if(Me(s),t!==t+0)throw t;Se(1,0)}},C:function(t,e,n,r,a,i,o,u,c,s,l){var f=Ee();try{gt(t)(e,n,r,a,i,o,u,c,s,l)}catch(t){if(Me(f),t!==t+0)throw t;Se(1,0)}},D:function(t,e,n,r,a,i,o,u,c,s,l,f,p,h,d,y){var b=Ee();try{gt(t)(e,n,r,a,i,o,u,c,s,l,f,p,h,d,y)}catch(t){if(Me(b),t!==t+0)throw t;Se(1,0)}},fa:function(t,e,n,r,a,i,o,u){var c=Ee();try{Pe(t,e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},da:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=Ee();try{Fe(t,e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(Me(p),t!==t+0)throw t;Se(1,0)}},ea:function(t,e,n,r,a,i){var o=Ee();try{Ue(t,e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},o:function(t){return t},a:j||u.wasmMemory,G:function(t){oe=t},la:le,z:function(t,e,n,r){return le(t,e,n,r)}};!function(){function t(t,e){u.asm=t.exports,ht.qc.push(u.asm.sb),$=u.asm.ub,X.unshift(u.asm.Va),k=e,O||(et--,u.monitorRunDependencies&&u.monitorRunDependencies(et),0==et&&(null!==nt&&(clearInterval(nt),nt=null),rt&&(t=rt,rt=null,t())))}function e(e){t(e.instance,e.module)}function n(t){return function(){if(!M&&(v||w)){if("function"==typeof fetch&&!tt.startsWith("file://"))return fetch(tt,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at \'"+tt+"\'";return t.arrayBuffer()})).catch((function(){return ot()}));if(f)return new Promise((function(t,e){f(tt,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return ot()}))}().then((function(t){return WebAssembly.instantiate(t,r)})).then((function(t){return t})).then(t,(function(t){x("failed to asynchronously prepare wasm: "+t),at(t)}))}var r={a:pe};if(O||(et++,u.monitorRunDependencies&&u.monitorRunDependencies(et)),u.instantiateWasm)try{return u.instantiateWasm(r,t)}catch(t){return x("Module.instantiateWasm callback failed with error: "+t),!1}(M||"function"!=typeof WebAssembly.instantiateStreaming||it()||tt.startsWith("file://")||_||"function"!=typeof fetch?n(e):fetch(tt,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(e,(function(t){return x("wasm streaming compile failed: "+t),x("falling back to ArrayBuffer instantiation"),n(e)}))}))).catch(s)}(),u.___wasm_call_ctors=function(){return(u.___wasm_call_ctors=u.asm.Va).apply(null,arguments)},u._OrtInit=function(){return(u._OrtInit=u.asm.Wa).apply(null,arguments)},u._OrtCreateSessionOptions=function(){return(u._OrtCreateSessionOptions=u.asm.Xa).apply(null,arguments)},u._OrtAppendExecutionProvider=function(){return(u._OrtAppendExecutionProvider=u.asm.Ya).apply(null,arguments)},u._OrtAddSessionConfigEntry=function(){return(u._OrtAddSessionConfigEntry=u.asm.Za).apply(null,arguments)},u._OrtReleaseSessionOptions=function(){return(u._OrtReleaseSessionOptions=u.asm._a).apply(null,arguments)},u._OrtCreateSession=function(){return(u._OrtCreateSession=u.asm.$a).apply(null,arguments)},u._OrtReleaseSession=function(){return(u._OrtReleaseSession=u.asm.ab).apply(null,arguments)},u._OrtGetInputCount=function(){return(u._OrtGetInputCount=u.asm.bb).apply(null,arguments)},u._OrtGetOutputCount=function(){return(u._OrtGetOutputCount=u.asm.cb).apply(null,arguments)},u._OrtGetInputName=function(){return(u._OrtGetInputName=u.asm.db).apply(null,arguments)},u._OrtGetOutputName=function(){return(u._OrtGetOutputName=u.asm.eb).apply(null,arguments)},u._OrtFree=function(){return(u._OrtFree=u.asm.fb).apply(null,arguments)},u._OrtCreateTensor=function(){return(u._OrtCreateTensor=u.asm.gb).apply(null,arguments)},u._OrtGetTensorData=function(){return(u._OrtGetTensorData=u.asm.hb).apply(null,arguments)},u._OrtReleaseTensor=function(){return(u._OrtReleaseTensor=u.asm.ib).apply(null,arguments)},u._OrtCreateRunOptions=function(){return(u._OrtCreateRunOptions=u.asm.jb).apply(null,arguments)},u._OrtAddRunConfigEntry=function(){return(u._OrtAddRunConfigEntry=u.asm.kb).apply(null,arguments)},u._OrtReleaseRunOptions=function(){return(u._OrtReleaseRunOptions=u.asm.lb).apply(null,arguments)},u._OrtRun=function(){return(u._OrtRun=u.asm.mb).apply(null,arguments)},u._OrtEndProfiling=function(){return(u._OrtEndProfiling=u.asm.nb).apply(null,arguments)};var he=u._pthread_self=function(){return(he=u._pthread_self=u.asm.ob).apply(null,arguments)},de=u._malloc=function(){return(de=u._malloc=u.asm.pb).apply(null,arguments)},ye=u._free=function(){return(ye=u._free=u.asm.qb).apply(null,arguments)},be=u._fflush=function(){return(be=u._fflush=u.asm.rb).apply(null,arguments)};u.__emscripten_tls_init=function(){return(u.__emscripten_tls_init=u.asm.sb).apply(null,arguments)};var me=u.___funcs_on_exit=function(){return(me=u.___funcs_on_exit=u.asm.tb).apply(null,arguments)},ge=u.__emscripten_thread_init=function(){return(ge=u.__emscripten_thread_init=u.asm.vb).apply(null,arguments)};u.__emscripten_thread_crashed=function(){return(u.__emscripten_thread_crashed=u.asm.wb).apply(null,arguments)};var ve,we=u._emscripten_run_in_main_runtime_thread_js=function(){return(we=u._emscripten_run_in_main_runtime_thread_js=u.asm.xb).apply(null,arguments)},_e=u.__emscripten_proxy_execute_task_queue=function(){return(_e=u.__emscripten_proxy_execute_task_queue=u.asm.yb).apply(null,arguments)},Oe=u.__emscripten_thread_free_data=function(){return(Oe=u.__emscripten_thread_free_data=u.asm.zb).apply(null,arguments)},Ae=u.__emscripten_thread_exit=function(){return(Ae=u.__emscripten_thread_exit=u.asm.Ab).apply(null,arguments)},Se=u._setThrew=function(){return(Se=u._setThrew=u.asm.Bb).apply(null,arguments)},Te=u._emscripten_stack_set_limits=function(){return(Te=u._emscripten_stack_set_limits=u.asm.Cb).apply(null,arguments)},Ee=u.stackSave=function(){return(Ee=u.stackSave=u.asm.Db).apply(null,arguments)},Me=u.stackRestore=function(){return(Me=u.stackRestore=u.asm.Eb).apply(null,arguments)},Ce=u.stackAlloc=function(){return(Ce=u.stackAlloc=u.asm.Fb).apply(null,arguments)},xe=u.___cxa_can_catch=function(){return(xe=u.___cxa_can_catch=u.asm.Gb).apply(null,arguments)},Re=u.___cxa_is_pointer_type=function(){return(Re=u.___cxa_is_pointer_type=u.asm.Hb).apply(null,arguments)},je=u.dynCall_j=function(){return(je=u.dynCall_j=u.asm.Ib).apply(null,arguments)},ke=u.dynCall_iiiiij=function(){return(ke=u.dynCall_iiiiij=u.asm.Jb).apply(null,arguments)},De=u.dynCall_jii=function(){return(De=u.dynCall_jii=u.asm.Kb).apply(null,arguments)},Pe=u.dynCall_viiiiij=function(){return(Pe=u.dynCall_viiiiij=u.asm.Lb).apply(null,arguments)},Ue=u.dynCall_vjji=function(){return(Ue=u.dynCall_vjji=u.asm.Mb).apply(null,arguments)},Fe=u.dynCall_viiijjjii=function(){return(Fe=u.dynCall_viiijjjii=u.asm.Nb).apply(null,arguments)},Ie=u.dynCall_iij=function(){return(Ie=u.dynCall_iij=u.asm.Ob).apply(null,arguments)},We=u.dynCall_ji=function(){return(We=u.dynCall_ji=u.asm.Pb).apply(null,arguments)},He=u.dynCall_iiiiiij=function(){return(He=u.dynCall_iiiiiij=u.asm.Qb).apply(null,arguments)},Le=u.dynCall_iiij=function(){return(Le=u.dynCall_iiij=u.asm.Rb).apply(null,arguments)};function ze(){function t(){if(!ve&&(ve=!0,u.calledRun=!0,!H)&&(O||dt(X),c(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),!O)){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;){var t=u.postRun.shift();Z.unshift(t)}dt(Z)}}if(!(0<et))if(O)c(u),O||dt(X),postMessage({cmd:"loaded"});else{if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)K();dt(q),0<et||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),t()}),1)):t())}}if(u.UTF8ToString=Y,u.stringToUTF8=function(t,e,n){return B(t,r(),e,n)},u.lengthBytesUTF8=G,u.keepRuntimeAlive=Q,u.wasmMemory=j,u.stackSave=Ee,u.stackRestore=Me,u.stackAlloc=Ce,u.ExitStatus=ct,u.PThread=ht,rt=function t(){ve||ze(),ve||(rt=t)},u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);0<u.preInit.length;)u.preInit.pop()();return ze(),t.ready});t.exports=r},932:(t,e,n)=>{var _scriptDir,r=(_scriptDir=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(t){var e,r,a;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){r=t,a=e}));var i,o,u,c,s,l,f=Object.assign({},e),p="./this.program",h=(t,e)=>{throw e},d="object"==typeof window,y="function"==typeof importScripts,b="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,m="";b?(m=y?n(908).dirname(m)+"/":"//",l=()=>{s||(c=n(384),s=n(908))},i=function(t,e){return l(),t=s.normalize(t),c.readFileSync(t,e?void 0:"utf8")},u=t=>((t=i(t,!0)).buffer||(t=new Uint8Array(t)),t),o=(t,e,n)=>{l(),t=s.normalize(t),c.readFile(t,(function(t,r){t?n(t):e(r.buffer)}))},1<process.argv.length&&(p=process.argv[1].replace(/\\\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof J))throw t})),process.on("unhandledRejection",(function(t){throw t})),h=(t,e)=>{if(_||0<L)throw process.exitCode=t,e;e instanceof J||w("exiting due to exception: "+e),process.exit(t)},e.inspect=function(){return"[Emscripten Module object]"}):(d||y)&&(y?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),_scriptDir&&(m=_scriptDir),m=0!==m.indexOf("blob:")?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",i=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},y&&(u=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),o=(t,e,n)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)});var g,v=e.print||console.log.bind(console),w=e.printErr||console.warn.bind(console);Object.assign(e,f),f=null,e.thisProgram&&(p=e.thisProgram),e.quit&&(h=e.quit),e.wasmBinary&&(g=e.wasmBinary);var _=e.noExitRuntime||!1;"object"!=typeof WebAssembly&&V("no native wasm support detected");var O,A,S,T,E,M,C=!1,x="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function R(t,e,n){var r=(e>>>=0)+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.buffer&&x)return x.decode(t.subarray(e,n));for(r="";e<n;){var a=t[e++];if(128&a){var i=63&t[e++];if(192==(224&a))r+=String.fromCharCode((31&a)<<6|i);else{var o=63&t[e++];65536>(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&t[e++])?r+=String.fromCharCode(a):(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else r+=String.fromCharCode(a)}return r}function j(t,e){return(t>>>=0)?R(T,t,e):""}function k(t,e,n,r){if(!(0<r))return 0;var a=n>>>=0;r=n+r-1;for(var i=0;i<t.length;++i){var o=t.charCodeAt(i);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++i)),127>=o){if(n>=r)break;e[n++>>>0]=o}else{if(2047>=o){if(n+1>=r)break;e[n++>>>0]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++>>>0]=224|o>>12}else{if(n+3>=r)break;e[n++>>>0]=240|o>>18,e[n++>>>0]=128|o>>12&63}e[n++>>>0]=128|o>>6&63}e[n++>>>0]=128|63&o}}return e[n>>>0]=0,n-a}function D(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);127>=r?e++:2047>=r?e+=2:55296<=r&&57343>=r?(e+=4,++n):e+=3}return e}function P(){var t=O.buffer;A=t,e.HEAP8=S=new Int8Array(t),e.HEAP16=new Int16Array(t),e.HEAP32=E=new Int32Array(t),e.HEAPU8=T=new Uint8Array(t),e.HEAPU16=new Uint16Array(t),e.HEAPU32=M=new Uint32Array(t),e.HEAPF32=new Float32Array(t),e.HEAPF64=new Float64Array(t)}var U,F=[],I=[],W=[],H=[],L=0;function z(){var t=e.preRun.shift();F.unshift(t)}var Y,B=0,G=null,N=null;function V(t){throw e.onAbort&&e.onAbort(t),w(t="Aborted("+t+")"),C=!0,t=new WebAssembly.RuntimeError(t+". Build with -sASSERTIONS for more info."),a(t),t}function $(){return Y.startsWith("data:application/octet-stream;base64,")}if(Y="ort-wasm.wasm",!$()){var q=Y;Y=e.locateFile?e.locateFile(q,m):m+q}function X(){var t=Y;try{if(t==Y&&g)return new Uint8Array(g);if(u)return u(t);throw"both async and sync fetching of the wasm failed"}catch(t){V(t)}}function J(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function Z(t){for(;0<t.length;)t.shift()(e)}var Q=[],K=0,tt=0;function et(t){this.Db=t,this.zb=t-24,this.Ub=function(t){M[this.zb+4>>2>>>0]=t},this.Eb=function(){return M[this.zb+4>>2>>>0]},this.Sb=function(t){M[this.zb+8>>2>>>0]=t},this.Wb=function(){return M[this.zb+8>>2>>>0]},this.Tb=function(){E[this.zb>>2>>>0]=0},this.Ib=function(t){S[this.zb+12>>0>>>0]=t?1:0},this.Pb=function(){return 0!=S[this.zb+12>>0>>>0]},this.Jb=function(t){S[this.zb+13>>0>>>0]=t?1:0},this.Lb=function(){return 0!=S[this.zb+13>>0>>>0]},this.Rb=function(t,e){this.Fb(0),this.Ub(t),this.Sb(e),this.Tb(),this.Ib(!1),this.Jb(!1)},this.Nb=function(){E[this.zb>>2>>>0]+=1},this.Xb=function(){var t=E[this.zb>>2>>>0];return E[this.zb>>2>>>0]=t-1,1===t},this.Fb=function(t){M[this.zb+16>>2>>>0]=t},this.Ob=function(){return M[this.zb+16>>2>>>0]},this.Qb=function(){if(Mt(this.Eb()))return M[this.Db>>2>>>0];var t=this.Ob();return 0!==t?t:this.Db}}function nt(t){return vt(new et(t).zb)}var rt=[];function at(t){var e=rt[t];return e||(t>=rt.length&&(rt.length=t+1),rt[t]=e=U.get(t)),e}function it(t){var e=D(t)+1,n=gt(e);return n&&k(t,S,n,e),n}var ot={};function ut(){if(!ct){var t,e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:p||"./this.program"};for(t in ot)void 0===ot[t]?delete e[t]:e[t]=ot[t];var n=[];for(t in e)n.push(t+"="+e[t]);ct=n}return ct}var ct,st=[null,[],[]];function lt(t,e){var n=st[t];0===e||10===e?((1===t?v:w)(R(n,0)),n.length=0):n.push(e)}var ft=0;function pt(t){return 0==t%4&&(0!=t%100||0==t%400)}var ht=[31,29,31,30,31,30,31,31,30,31,30,31],dt=[31,28,31,30,31,30,31,31,30,31,30,31];function yt(t,e,n,r){function a(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function i(t,e){return a(t,e,"0")}function o(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function u(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function c(t){var e=t.Bb;for(t=new Date(new Date(t.Cb+1900,0,1).getTime());0<e;){var n=t.getMonth(),r=(pt(t.getFullYear())?ht:dt)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return n=new Date(t.getFullYear()+1,0,4),e=u(new Date(t.getFullYear(),0,4)),n=u(n),0>=o(e,t)?0>=o(n,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var s=E[r+40>>2>>>0];for(var l in r={$b:E[r>>2>>>0],Zb:E[r+4>>2>>>0],Gb:E[r+8>>2>>>0],Kb:E[r+12>>2>>>0],Hb:E[r+16>>2>>>0],Cb:E[r+20>>2>>>0],Ab:E[r+24>>2>>>0],Bb:E[r+28>>2>>>0],bc:E[r+32>>2>>>0],Yb:E[r+36>>2>>>0],ac:s?j(s):""},n=j(n),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})n=n.replace(new RegExp(l,"g"),s[l]);var f="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),p="January February March April May June July August September October November December".split(" ");for(l in s={"%a":function(t){return f[t.Ab].substring(0,3)},"%A":function(t){return f[t.Ab]},"%b":function(t){return p[t.Hb].substring(0,3)},"%B":function(t){return p[t.Hb]},"%C":function(t){return i((t.Cb+1900)/100|0,2)},"%d":function(t){return i(t.Kb,2)},"%e":function(t){return a(t.Kb,2," ")},"%g":function(t){return c(t).toString().substring(2)},"%G":function(t){return c(t)},"%H":function(t){return i(t.Gb,2)},"%I":function(t){return 0==(t=t.Gb)?t=12:12<t&&(t-=12),i(t,2)},"%j":function(t){for(var e=0,n=0;n<=t.Hb-1;e+=(pt(t.Cb+1900)?ht:dt)[n++]);return i(t.Kb+e,3)},"%m":function(t){return i(t.Hb+1,2)},"%M":function(t){return i(t.Zb,2)},"%n":function(){return"\\n"},"%p":function(t){return 0<=t.Gb&&12>t.Gb?"AM":"PM"},"%S":function(t){return i(t.$b,2)},"%t":function(){return"\\t"},"%u":function(t){return t.Ab||7},"%U":function(t){return i(Math.floor((t.Bb+7-t.Ab)/7),2)},"%V":function(t){var e=Math.floor((t.Bb+7-(t.Ab+6)%7)/7);if(2>=(t.Ab+371-t.Bb-2)%7&&e++,e)53==e&&(4==(n=(t.Ab+371-t.Bb)%7)||3==n&&pt(t.Cb)||(e=1));else{e=52;var n=(t.Ab+7-t.Bb-1)%7;(4==n||5==n&&pt(t.Cb%400-1))&&e++}return i(e,2)},"%w":function(t){return t.Ab},"%W":function(t){return i(Math.floor((t.Bb+7-(t.Ab+6)%7)/7),2)},"%y":function(t){return(t.Cb+1900).toString().substring(2)},"%Y":function(t){return t.Cb+1900},"%z":function(t){var e=0<=(t=t.Yb);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.ac},"%%":function(){return"%"}},n=n.replace(/%%/g,"\\0\\0"),s)n.includes(l)&&(n=n.replace(new RegExp(l,"g"),s[l](r)));return l=function(t){var e=Array(D(t)+1);return k(t,e,0,e.length),e}(n=n.replace(/\\0\\0/g,"%")),l.length>e?0:(S.set(l,t>>>0),l.length-1)}var bt={a:function(t){return gt(t+24)+24},m:function(t){return(t=new et(t)).Pb()||(t.Ib(!0),K--),t.Jb(!1),Q.push(t),t.Nb(),t.Qb()},ia:function(t){throw w("Unexpected exception thrown, this is not properly supported - aborting"),C=!0,t},w:function(){Ot(0);var t=Q.pop();if(t.Xb()&&!t.Lb()){var e=t.Wb();e&&at(e)(t.Db),nt(t.Db)}tt=0},d:function(){var t=tt;if(!t)return ft=0;var e=new et(t);e.Fb(t);var n=e.Eb();if(!n)return ft=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(Et(i,n,e.zb+16))return ft=i,t}return ft=n,t},k:function(){var t=tt;if(!t)return ft=0;var e=new et(t);e.Fb(t);var n=e.Eb();if(!n)return ft=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(Et(i,n,e.zb+16))return ft=i,t}return ft=n,t},g:function(){var t=tt;if(!t)return ft=0;var e=new et(t);e.Fb(t);var n=e.Eb();if(!n)return ft=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(Et(i,n,e.zb+16))return ft=i,t}return ft=n,t},s:nt,L:function(){var t=Q.pop();t||V("no exception to throw");var e=t.Db;throw t.Lb()||(Q.push(t),t.Jb(!0),t.Ib(!1),K++),tt=e,e},b:function(t,e,n){throw new et(t).Rb(e,n),tt=t,K++,t},la:function(){return K},i:function(t){throw tt||(tt=t),t},H:function(){return 0},Ba:function(){},pa:function(){},ra:function(){},ka:function(){return 0},za:function(){},ua:function(){},ya:function(){},R:function(){},qa:function(){},na:function(){},Aa:function(){},oa:function(){},Ha:function(){},Ja:function(){V("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ia:function(){V("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},S:function(){return Date.now()},Ca:function(){return!0},Da:function(t,e){t=new Date(1e3*(M[t>>>2]+4294967296*E[t+4>>>2])),E[e>>2>>>0]=t.getUTCSeconds(),E[e+4>>2>>>0]=t.getUTCMinutes(),E[e+8>>2>>>0]=t.getUTCHours(),E[e+12>>2>>>0]=t.getUTCDate(),E[e+16>>2>>>0]=t.getUTCMonth(),E[e+20>>2>>>0]=t.getUTCFullYear()-1900,E[e+24>>2>>>0]=t.getUTCDay(),E[e+28>>2>>>0]=(t.getTime()-Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},Ea:function(t,e){t=new Date(1e3*(M[t>>>2]+4294967296*E[t+4>>>2])),E[e>>2>>>0]=t.getSeconds(),E[e+4>>2>>>0]=t.getMinutes(),E[e+8>>2>>>0]=t.getHours(),E[e+12>>2>>>0]=t.getDate(),E[e+16>>2>>>0]=t.getMonth(),E[e+20>>2>>>0]=t.getFullYear()-1900,E[e+24>>2>>>0]=t.getDay();var n=new Date(t.getFullYear(),0,1);E[e+28>>2>>>0]=(t.getTime()-n.getTime())/864e5|0,E[e+36>>2>>>0]=-60*t.getTimezoneOffset();var r=new Date(t.getFullYear(),6,1).getTimezoneOffset();n=n.getTimezoneOffset(),E[e+32>>2>>>0]=0|(r!=n&&t.getTimezoneOffset()==Math.min(n,r))},Fa:function(t){var e=new Date(E[t+20>>2>>>0]+1900,E[t+16>>2>>>0],E[t+12>>2>>>0],E[t+8>>2>>>0],E[t+4>>2>>>0],E[t>>2>>>0],0),n=E[t+32>>2>>>0],r=e.getTimezoneOffset(),a=new Date(e.getFullYear(),0,1),i=new Date(e.getFullYear(),6,1).getTimezoneOffset(),o=a.getTimezoneOffset(),u=Math.min(o,i);return 0>n?E[t+32>>2>>>0]=Number(i!=o&&u==r):0<n!=(u==r)&&(i=Math.max(o,i),e.setTime(e.getTime()+6e4*((0<n?u:i)-r))),E[t+24>>2>>>0]=e.getDay(),E[t+28>>2>>>0]=(e.getTime()-a.getTime())/864e5|0,E[t>>2>>>0]=e.getSeconds(),E[t+4>>2>>>0]=e.getMinutes(),E[t+8>>2>>>0]=e.getHours(),E[t+12>>2>>>0]=e.getDate(),E[t+16>>2>>>0]=e.getMonth(),e.getTime()/1e3|0},sa:function(){return-52},ta:function(){},Ga:function t(e,n,r){t.Vb||(t.Vb=!0,function(t,e,n){function r(t){return(t=t.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?t[1]:"GMT"}var a=(new Date).getFullYear(),i=new Date(a,0,1),o=new Date(a,6,1);a=i.getTimezoneOffset();var u=o.getTimezoneOffset();E[t>>2>>>0]=60*Math.max(a,u),E[e>>2>>>0]=Number(a!=u),t=r(i),e=r(o),t=it(t),e=it(e),u<a?(M[n>>2>>>0]=t,M[n+4>>2>>>0]=e):(M[n>>2>>>0]=e,M[n+4>>2>>>0]=t)}(e,n,r))},B:function(){V("")},ma:function(){return 4294901760},I:b?()=>{var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:()=>performance.now(),xa:function(t,e,n){T.copyWithin(t>>>0,e>>>0,e+n>>>0)},G:function(t){var e=T.length;if(4294901760<(t>>>=0))return!1;for(var n=1;4>=n;n*=2){var r=e*(1+.2/n);r=Math.min(r,t+100663296);var a=Math;r=Math.max(t,r),a=a.min.call(a,4294901760,r+(65536-r%65536)%65536);t:{try{O.grow(a-A.byteLength+65535>>>16),P();var i=1;break t}catch(t){}i=void 0}if(i)return!0}return!1},va:function(t,e){var n=0;return ut().forEach((function(r,a){var i=e+n;for(a=M[t+4*a>>2>>>0]=i,i=0;i<r.length;++i)S[a++>>0>>>0]=r.charCodeAt(i);S[a>>0>>>0]=0,n+=r.length+1})),0},wa:function(t,e){var n=ut();M[t>>2>>>0]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),M[e>>2>>>0]=r,0},ba:function(t){_||0<L||(_t(),Z(W),wt(0),st[1].length&&lt(1,10),st[2].length&&lt(2,10)),_||0<L||(e.onExit&&e.onExit(t),C=!0),h(t,new J(t))},E:function(){return 52},Q:function(){return 52},ca:function(){return 70},P:function(t,e,n,r){for(var a=0,i=0;i<n;i++){var o=M[e>>2>>>0],u=M[e+4>>2>>>0];e+=8;for(var c=0;c<u;c++)lt(t,T[o+c>>>0]);a+=u}return M[r>>2>>>0]=a,0},c:function(){return ft},ja:function t(e,r){t.Mb||(t.Mb=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);return()=>(crypto.getRandomValues(t),t[0])}if(b)try{var e=n(Object(function(){var t=new Error("Cannot find module \'crypto\'");throw t.code="MODULE_NOT_FOUND",t}()));return()=>e.randomBytes(1)[0]}catch(t){}return()=>V("randomDevice")}());for(var a=0;a<r;a++)S[e+a>>0>>>0]=t.Mb();return 0},ea:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},fa:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},J:function(t){var e=At();try{return at(t)()}catch(t){if(St(e),t!==t+0)throw t;Ot(1,0)}},e:function(t,e){var n=At();try{return at(t)(e)}catch(t){if(St(n),t!==t+0)throw t;Ot(1,0)}},N:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},O:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},j:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},o:function(t,e,n,r){var a=At();try{return at(t)(e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},p:function(t,e,n,r,a){var i=At();try{return at(t)(e,n,r,a)}catch(t){if(St(i),t!==t+0)throw t;Ot(1,0)}},M:function(t,e,n,r,a,i){var o=At();try{return at(t)(e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},r:function(t,e,n,r,a,i){var o=At();try{return at(t)(e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},v:function(t,e,n,r,a,i,o){var u=At();try{return at(t)(e,n,r,a,i,o)}catch(t){if(St(u),t!==t+0)throw t;Ot(1,0)}},K:function(t,e,n,r,a,i,o,u){var c=At();try{return at(t)(e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},D:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=At();try{return at(t)(e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(St(p),t!==t+0)throw t;Ot(1,0)}},X:function(t,e,n,r,a,i,o,u){var c=At();try{return Ft(t,e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},V:function(t,e,n,r,a,i,o){var u=At();try{return xt(t,e,n,r,a,i,o)}catch(t){if(St(u),t!==t+0)throw t;Ot(1,0)}},U:function(t,e,n,r,a){var i=At();try{return It(t,e,n,r,a)}catch(t){if(St(i),t!==t+0)throw t;Ot(1,0)}},Z:function(t,e,n,r){var a=At();try{return Pt(t,e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},W:function(t){var e=At();try{return Ct(t)}catch(t){if(St(e),t!==t+0)throw t;Ot(1,0)}},Y:function(t,e){var n=At();try{return Ut(t,e)}catch(t){if(St(n),t!==t+0)throw t;Ot(1,0)}},T:function(t,e,n){var r=At();try{return Rt(t,e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},f:function(t){var e=At();try{at(t)()}catch(t){if(St(e),t!==t+0)throw t;Ot(1,0)}},q:function(t,e){var n=At();try{at(t)(e)}catch(t){if(St(n),t!==t+0)throw t;Ot(1,0)}},h:function(t,e,n){var r=At();try{at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},da:function(t,e,n,r){var a=At();try{at(t)(e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},l:function(t,e,n,r){var a=At();try{at(t)(e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},t:function(t,e,n,r,a){var i=At();try{at(t)(e,n,r,a)}catch(t){if(St(i),t!==t+0)throw t;Ot(1,0)}},u:function(t,e,n,r,a,i){var o=At();try{at(t)(e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},x:function(t,e,n,r,a,i,o){var u=At();try{at(t)(e,n,r,a,i,o)}catch(t){if(St(u),t!==t+0)throw t;Ot(1,0)}},z:function(t,e,n,r,a,i,o,u){var c=At();try{at(t)(e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},ga:function(t,e,n,r,a,i,o,u,c){var s=At();try{at(t)(e,n,r,a,i,o,u,c)}catch(t){if(St(s),t!==t+0)throw t;Ot(1,0)}},A:function(t,e,n,r,a,i,o,u,c,s,l){var f=At();try{at(t)(e,n,r,a,i,o,u,c,s,l)}catch(t){if(St(f),t!==t+0)throw t;Ot(1,0)}},C:function(t,e,n,r,a,i,o,u,c,s,l,f,p,h,d,y){var b=At();try{at(t)(e,n,r,a,i,o,u,c,s,l,f,p,h,d,y)}catch(t){if(St(b),t!==t+0)throw t;Ot(1,0)}},aa:function(t,e,n,r,a,i,o,u){var c=At();try{jt(t,e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},_:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=At();try{Dt(t,e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(St(p),t!==t+0)throw t;Ot(1,0)}},$:function(t,e,n,r,a,i){var o=At();try{kt(t,e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},n:function(t){return t},F:function(t){ft=t},ha:yt,y:function(t,e,n,r){return yt(t,e,n,r)}};!function(){function t(t){e.asm=t.exports,O=e.asm.Ka,P(),U=e.asm.ib,I.unshift(e.asm.La),B--,e.monitorRunDependencies&&e.monitorRunDependencies(B),0==B&&(null!==G&&(clearInterval(G),G=null),N&&(t=N,N=null,t()))}function n(e){t(e.instance)}function r(t){return function(){if(!g&&(d||y)){if("function"==typeof fetch&&!Y.startsWith("file://"))return fetch(Y,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at \'"+Y+"\'";return t.arrayBuffer()})).catch((function(){return X()}));if(o)return new Promise((function(t,e){o(Y,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return X()}))}().then((function(t){return WebAssembly.instantiate(t,i)})).then((function(t){return t})).then(t,(function(t){w("failed to asynchronously prepare wasm: "+t),V(t)}))}var i={a:bt};if(B++,e.monitorRunDependencies&&e.monitorRunDependencies(B),e.instantiateWasm)try{return e.instantiateWasm(i,t)}catch(t){return w("Module.instantiateWasm callback failed with error: "+t),!1}(g||"function"!=typeof WebAssembly.instantiateStreaming||$()||Y.startsWith("file://")||b||"function"!=typeof fetch?r(n):fetch(Y,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,i).then(n,(function(t){return w("wasm streaming compile failed: "+t),w("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(a)}(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.La).apply(null,arguments)},e._OrtInit=function(){return(e._OrtInit=e.asm.Ma).apply(null,arguments)},e._OrtCreateSessionOptions=function(){return(e._OrtCreateSessionOptions=e.asm.Na).apply(null,arguments)},e._OrtAppendExecutionProvider=function(){return(e._OrtAppendExecutionProvider=e.asm.Oa).apply(null,arguments)},e._OrtAddSessionConfigEntry=function(){return(e._OrtAddSessionConfigEntry=e.asm.Pa).apply(null,arguments)},e._OrtReleaseSessionOptions=function(){return(e._OrtReleaseSessionOptions=e.asm.Qa).apply(null,arguments)},e._OrtCreateSession=function(){return(e._OrtCreateSession=e.asm.Ra).apply(null,arguments)},e._OrtReleaseSession=function(){return(e._OrtReleaseSession=e.asm.Sa).apply(null,arguments)},e._OrtGetInputCount=function(){return(e._OrtGetInputCount=e.asm.Ta).apply(null,arguments)},e._OrtGetOutputCount=function(){return(e._OrtGetOutputCount=e.asm.Ua).apply(null,arguments)},e._OrtGetInputName=function(){return(e._OrtGetInputName=e.asm.Va).apply(null,arguments)},e._OrtGetOutputName=function(){return(e._OrtGetOutputName=e.asm.Wa).apply(null,arguments)},e._OrtFree=function(){return(e._OrtFree=e.asm.Xa).apply(null,arguments)},e._OrtCreateTensor=function(){return(e._OrtCreateTensor=e.asm.Ya).apply(null,arguments)},e._OrtGetTensorData=function(){return(e._OrtGetTensorData=e.asm.Za).apply(null,arguments)},e._OrtReleaseTensor=function(){return(e._OrtReleaseTensor=e.asm._a).apply(null,arguments)},e._OrtCreateRunOptions=function(){return(e._OrtCreateRunOptions=e.asm.$a).apply(null,arguments)},e._OrtAddRunConfigEntry=function(){return(e._OrtAddRunConfigEntry=e.asm.ab).apply(null,arguments)},e._OrtReleaseRunOptions=function(){return(e._OrtReleaseRunOptions=e.asm.bb).apply(null,arguments)},e._OrtRun=function(){return(e._OrtRun=e.asm.cb).apply(null,arguments)},e._OrtEndProfiling=function(){return(e._OrtEndProfiling=e.asm.db).apply(null,arguments)};var mt,gt=e._malloc=function(){return(gt=e._malloc=e.asm.eb).apply(null,arguments)},vt=e._free=function(){return(vt=e._free=e.asm.fb).apply(null,arguments)},wt=e._fflush=function(){return(wt=e._fflush=e.asm.gb).apply(null,arguments)},_t=e.___funcs_on_exit=function(){return(_t=e.___funcs_on_exit=e.asm.hb).apply(null,arguments)},Ot=e._setThrew=function(){return(Ot=e._setThrew=e.asm.jb).apply(null,arguments)},At=e.stackSave=function(){return(At=e.stackSave=e.asm.kb).apply(null,arguments)},St=e.stackRestore=function(){return(St=e.stackRestore=e.asm.lb).apply(null,arguments)},Tt=e.stackAlloc=function(){return(Tt=e.stackAlloc=e.asm.mb).apply(null,arguments)},Et=e.___cxa_can_catch=function(){return(Et=e.___cxa_can_catch=e.asm.nb).apply(null,arguments)},Mt=e.___cxa_is_pointer_type=function(){return(Mt=e.___cxa_is_pointer_type=e.asm.ob).apply(null,arguments)},Ct=e.dynCall_j=function(){return(Ct=e.dynCall_j=e.asm.pb).apply(null,arguments)},xt=e.dynCall_iiiiij=function(){return(xt=e.dynCall_iiiiij=e.asm.qb).apply(null,arguments)},Rt=e.dynCall_jii=function(){return(Rt=e.dynCall_jii=e.asm.rb).apply(null,arguments)},jt=e.dynCall_viiiiij=function(){return(jt=e.dynCall_viiiiij=e.asm.sb).apply(null,arguments)},kt=e.dynCall_vjji=function(){return(kt=e.dynCall_vjji=e.asm.tb).apply(null,arguments)},Dt=e.dynCall_viiijjjii=function(){return(Dt=e.dynCall_viiijjjii=e.asm.ub).apply(null,arguments)},Pt=e.dynCall_iij=function(){return(Pt=e.dynCall_iij=e.asm.vb).apply(null,arguments)},Ut=e.dynCall_ji=function(){return(Ut=e.dynCall_ji=e.asm.wb).apply(null,arguments)},Ft=e.dynCall_iiiiiij=function(){return(Ft=e.dynCall_iiiiiij=e.asm.xb).apply(null,arguments)},It=e.dynCall_iiij=function(){return(It=e.dynCall_iiij=e.asm.yb).apply(null,arguments)};function Wt(){function t(){if(!mt&&(mt=!0,e.calledRun=!0,!C)){if(Z(I),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var t=e.postRun.shift();H.unshift(t)}Z(H)}}if(!(0<B)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)z();Z(F),0<B||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}}if(e.UTF8ToString=j,e.stringToUTF8=function(t,e,n){return k(t,T,e,n)},e.lengthBytesUTF8=D,e.stackSave=At,e.stackRestore=St,e.stackAlloc=Tt,N=function t(){mt||Wt(),mt||(N=t)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return Wt(),t.ready});t.exports=r},967:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.iterateExtraOptions=void 0,e.iterateExtraOptions=(t,n,r,a)=>{if("object"==typeof t&&null!==t){if(r.has(t))throw new Error("Circular reference in options");r.add(t)}Object.entries(t).forEach((([t,i])=>{const o=n?n+t:t;if("object"==typeof i)(0,e.iterateExtraOptions)(i,o+".",r,a);else if("string"==typeof i||"number"==typeof i)a(o,i.toString());else{if("boolean"!=typeof i)throw new Error("Can\'t handle extra config type: "+typeof i);a(o,i?"1":"0")}}))}},586:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setRunOptions=void 0;const r=n(967),a=n(983),i=n(361);e.setRunOptions=t=>{const e=(0,i.getInstance)();let n=0;const o=[],u=t||{};try{if(void 0===(null==t?void 0:t.logSeverityLevel))u.logSeverityLevel=2;else if("number"!=typeof t.logSeverityLevel||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${t.logSeverityLevel}`);if(void 0===(null==t?void 0:t.logVerbosityLevel))u.logVerbosityLevel=0;else if("number"!=typeof t.logVerbosityLevel||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);void 0===(null==t?void 0:t.terminate)&&(u.terminate=!1);let i=0;if(void 0!==(null==t?void 0:t.tag)&&(i=(0,a.allocWasmString)(t.tag,o)),n=e._OrtCreateRunOptions(u.logSeverityLevel,u.logVerbosityLevel,!!u.terminate,i),0===n)throw new Error("Can\'t create run options");return void 0!==(null==t?void 0:t.extra)&&(0,r.iterateExtraOptions)(t.extra,"",new WeakSet,((t,r)=>{const i=(0,a.allocWasmString)(t,o),u=(0,a.allocWasmString)(r,o);if(0!==e._OrtAddRunConfigEntry(n,i,u))throw new Error(`Can\'t set a run config entry: ${t} - ${r}`)})),[n,o]}catch(t){throw 0!==n&&e._OrtReleaseRunOptions(n),o.forEach(e._free),t}}},919:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setSessionOptions=void 0;const r=n(967),a=n(983),i=n(361);e.setSessionOptions=t=>{const e=(0,i.getInstance)();let n=0;const o=[],u=t||{};(t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});const e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1")})(u);try{void 0===(null==t?void 0:t.graphOptimizationLevel)&&(u.graphOptimizationLevel="all");const c=(t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}})(u.graphOptimizationLevel);void 0===(null==t?void 0:t.enableCpuMemArena)&&(u.enableCpuMemArena=!0),void 0===(null==t?void 0:t.enableMemPattern)&&(u.enableMemPattern=!0),void 0===(null==t?void 0:t.executionMode)&&(u.executionMode="sequential");const s=(t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}})(u.executionMode);let l=0;if(void 0!==(null==t?void 0:t.logId)&&(l=(0,a.allocWasmString)(t.logId,o)),void 0===(null==t?void 0:t.logSeverityLevel))u.logSeverityLevel=2;else if("number"!=typeof t.logSeverityLevel||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${t.logSeverityLevel}`);if(void 0===(null==t?void 0:t.logVerbosityLevel))u.logVerbosityLevel=0;else if("number"!=typeof t.logVerbosityLevel||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);if(void 0===(null==t?void 0:t.enableProfiling)&&(u.enableProfiling=!1),n=e._OrtCreateSessionOptions(c,!!u.enableCpuMemArena,!!u.enableMemPattern,s,!!u.enableProfiling,0,l,u.logSeverityLevel,u.logVerbosityLevel),0===n)throw new Error("Can\'t create session options");return(null==t?void 0:t.executionProviders)&&((t,e,n)=>{for(const r of e){let e="string"==typeof r?r:r.name;switch(e){case"xnnpack":e="XNNPACK";break;case"wasm":case"cpu":continue;default:throw new Error(`not supported EP: ${e}`)}const o=(0,a.allocWasmString)(e,n);if(0!==(0,i.getInstance)()._OrtAppendExecutionProvider(t,o))throw new Error(`Can\'t append execution provider: ${e}`)}})(n,t.executionProviders,o),void 0!==(null==t?void 0:t.extra)&&(0,r.iterateExtraOptions)(t.extra,"",new WeakSet,((t,r)=>{const i=(0,a.allocWasmString)(t,o),u=(0,a.allocWasmString)(r,o);if(0!==e._OrtAddSessionConfigEntry(n,i,u))throw new Error(`Can\'t set a session config entry: ${t} - ${r}`)})),[n,o]}catch(t){throw 0!==n&&e._OrtReleaseSessionOptions(n),o.forEach(e._free),t}}},983:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.allocWasmString=void 0;const r=n(361);e.allocWasmString=(t,e)=>{const n=(0,r.getInstance)(),a=n.lengthBytesUTF8(t)+1,i=n._malloc(a);return n.stringToUTF8(t,i,a),e.push(i),i}},349:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.extractTransferableBuffers=e.endProfiling=e.run=e.releaseSession=e.createSession=e.createSessionFinalize=e.createSessionAllocate=e.initOrt=void 0;const r=n(586),a=n(919),i=n(983),o=n(361);e.initOrt=(t,e)=>{const n=(0,o.getInstance)()._OrtInit(t,e);if(0!==n)throw new Error(`Can\'t initialize onnxruntime. error code = ${n}`)};const u=new Map;e.createSessionAllocate=t=>{const e=(0,o.getInstance)(),n=e._malloc(t.byteLength);return e.HEAPU8.set(t,n),[n,t.byteLength]},e.createSessionFinalize=(t,e)=>{const n=(0,o.getInstance)();let r=0,i=0,c=[];try{if([i,c]=(0,a.setSessionOptions)(e),r=n._OrtCreateSession(t[0],t[1],i),0===r)throw new Error("Can\'t create a session")}finally{n._free(t[0]),n._OrtReleaseSessionOptions(i),c.forEach(n._free)}const s=n._OrtGetInputCount(r),l=n._OrtGetOutputCount(r),f=[],p=[],h=[],d=[];for(let t=0;t<s;t++){const e=n._OrtGetInputName(r,t);if(0===e)throw new Error("Can\'t get an input name");p.push(e),f.push(n.UTF8ToString(e))}for(let t=0;t<l;t++){const e=n._OrtGetOutputName(r,t);if(0===e)throw new Error("Can\'t get an output name");d.push(e),h.push(n.UTF8ToString(e))}return u.set(r,[r,p,d]),[r,f,h]},e.createSession=(t,n)=>{const r=(0,e.createSessionAllocate)(t);return(0,e.createSessionFinalize)(r,n)},e.releaseSession=t=>{const e=(0,o.getInstance)(),n=u.get(t);if(!n)throw new Error("invalid session id");const r=n[0],a=n[1],i=n[2];a.forEach(e._OrtFree),i.forEach(e._OrtFree),e._OrtReleaseSession(r),u.delete(t)};const c=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;default:throw new Error(`unsupported data type: ${t}`)}},s=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";default:throw new Error(`unsupported data type: ${t}`)}},l=t=>{switch(t){case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}};e.run=(t,e,n,a,f)=>{const p=(0,o.getInstance)(),h=u.get(t);if(!h)throw new Error("invalid session id");const d=h[0],y=h[1],b=h[2],m=e.length,g=a.length;let v=0,w=[];const _=[],O=[];try{[v,w]=(0,r.setRunOptions)(f);for(let t=0;t<m;t++){const e=n[t][0],r=n[t][1],a=n[t][2];let o,u;if(Array.isArray(a)){u=4*a.length,o=p._malloc(u),O.push(o);let t=o/4;for(let e=0;e<a.length;e++){if("string"!=typeof a[e])throw new TypeError(`tensor data at index ${e} is not a string`);p.HEAPU32[t++]=(0,i.allocWasmString)(a[e],O)}}else u=a.byteLength,o=p._malloc(u),O.push(o),p.HEAPU8.set(new Uint8Array(a.buffer,a.byteOffset,u),o);const s=p.stackSave(),l=p.stackAlloc(4*r.length);try{let t=l/4;r.forEach((e=>p.HEAP32[t++]=e));const n=p._OrtCreateTensor(c(e),o,u,l,r.length);if(0===n)throw new Error("Can\'t create a tensor");_.push(n)}finally{p.stackRestore(s)}}const t=p.stackSave(),o=p.stackAlloc(4*m),u=p.stackAlloc(4*m),h=p.stackAlloc(4*g),A=p.stackAlloc(4*g);try{let n=o/4,r=u/4,i=h/4,c=A/4;for(let t=0;t<m;t++)p.HEAPU32[n++]=_[t],p.HEAPU32[r++]=y[e[t]];for(let t=0;t<g;t++)p.HEAPU32[i++]=0,p.HEAPU32[c++]=b[a[t]];let f=p._OrtRun(d,u,o,m,A,g,h,v);const w=[];if(0===f)for(let t=0;t<g;t++){const e=p.HEAPU32[h/4+t],n=p.stackSave(),r=p.stackAlloc(16);let a,i=0;try{if(f=p._OrtGetTensorData(e,r,r+4,r+8,r+12),0!==f)throw new Error(`Can\'t access output tensor data. error code = ${f}`);let t=r/4;const o=p.HEAPU32[t++];i=p.HEAPU32[t++];const u=p.HEAPU32[t++],c=p.HEAPU32[t++],h=[];for(let t=0;t<c;t++)h.push(p.HEAPU32[u/4+t]);p._OrtFree(u);const d=0===h.length?1:h.reduce(((t,e)=>t*e));if(a=s(o),"string"===a){const t=[];let e=i/4;for(let n=0;n<d;n++){const r=p.HEAPU32[e++],a=n===d-1?void 0:p.HEAPU32[e]-r;t.push(p.UTF8ToString(r,a))}w.push([a,h,t])}else{const t=new(l(a))(d);new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(p.HEAPU8.subarray(i,i+t.byteLength)),w.push([a,h,t])}}finally{p.stackRestore(n),"string"===a&&i&&p._free(i),p._OrtReleaseTensor(e)}}if(0===f)return w;throw new Error(`failed to call OrtRun(). error code = ${f}.`)}finally{p.stackRestore(t)}}finally{_.forEach(p._OrtReleaseTensor),O.forEach(p._free),p._OrtReleaseRunOptions(v),w.forEach(p._free)}},e.endProfiling=t=>{const e=(0,o.getInstance)(),n=u.get(t);if(!n)throw new Error("invalid session id");const r=n[0],a=e._OrtEndProfiling(r);if(0===a)throw new Error("Can\'t get an profile file name");e._OrtFree(a)},e.extractTransferableBuffers=t=>{const e=[];for(const n of t){const t=n[2];!Array.isArray(t)&&t.buffer&&e.push(t.buffer)}return e}},361:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,a)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.dispose=e.getInstance=e.initializeWebAssembly=void 0;const u=i(n(449)),c=o(n(932)),s=n(474);let l,f=!1,p=!1,h=!1;const d=(t,e)=>e?t?"ort-wasm-simd-threaded.wasm":"ort-wasm-threaded.wasm":t?"ort-wasm-simd.wasm":"ort-wasm.wasm";e.initializeWebAssembly=async t=>{if(f)return Promise.resolve();if(p)throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");if(h)throw new Error("previous call to \'initializeWebAssembly()\' failed.");p=!0;const e=t.initTimeout,r=t.numThreads,a=t.simd,i=r>1&&(()=>{try{return"undefined"!=typeof SharedArrayBuffer&&("undefined"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])))}catch(t){return!1}})(),o=a&&(()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch(t){return!1}})(),y="string"==typeof t.wasmPaths?t.wasmPaths:void 0,b=d(!1,i),m=d(o,i),g="object"==typeof t.wasmPaths?t.wasmPaths[m]:void 0;let v=!1;const w=[];if(e>0&&w.push(new Promise((t=>{setTimeout((()=>{v=!0,t()}),e)}))),w.push(new Promise(((t,e)=>{const r=i?s:c.default,a={locateFile:(t,e)=>i&&t.endsWith(".worker.js")&&"undefined"!=typeof Blob?URL.createObjectURL(new Blob([n(154)],{type:"text/javascript"})):t===b?null!=g?g:(null!=y?y:e)+m:e+t};if(i)if("undefined"==typeof Blob)a.mainScriptUrlOrBlob=u.join("/","ort-wasm-threaded.js");else{const t=`var ortWasmThreaded=(function(){var _scriptDir;return ${r.toString()}})();`;a.mainScriptUrlOrBlob=new Blob([t],{type:"text/javascript"})}r(a).then((e=>{p=!1,f=!0,l=e,t()}),(t=>{p=!1,h=!0,e(t)}))}))),await Promise.race(w),v)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},e.getInstance=()=>{if(f&&l)return l;throw new Error("WebAssembly is not initialized yet.")},e.dispose=()=>{var t;!f||p||h||(p=!0,null===(t=l.PThread)||void 0===t||t.terminateAllThreads(),l=void 0,p=!1,f=!1,h=!0)}},154:t=>{"use strict";t.exports=\'"use strict";var e={},t="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node;if(t){var r=require("worker_threads"),a=r.parentPort;a.on("message",(e=>onmessage({data:e})));var o=require("fs");Object.assign(global,{self:global,require:require,Module:e,location:{href:__filename},Worker:r.Worker,importScripts:function(e){(0,eval)(o.readFileSync(e,"utf8"))},postMessage:function(e){a.postMessage(e)},performance:global.performance||{now:function(){return Date.now()}}})}var s=!1,n=[],i=function(){var e=Array.prototype.slice.call(arguments).join(" ");t?o.writeSync(2,e+"\\\\n"):console.error(e)};self.alert=function(){var t=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:t,threadId:e._pthread_self()})},e.instantiateWasm=(t,r)=>{var a=new WebAssembly.Instance(e.wasmModule,t);return r(a),e.wasmModule=null,a.exports},self.onunhandledrejection=e=>{throw e.reason??e},self.onmessage=t=>{try{if("load"===t.data.cmd){if(e.wasmModule=t.data.wasmModule,e.wasmMemory=t.data.wasmMemory,e.buffer=e.wasmMemory.buffer,e.ENVIRONMENT_IS_PTHREAD=!0,"string"==typeof t.data.urlOrBlob)importScripts(t.data.urlOrBlob);else{var r=URL.createObjectURL(t.data.urlOrBlob);importScripts(r),URL.revokeObjectURL(r)}ortWasmThreaded(e).then((function(t){e=t}))}else if("run"===t.data.cmd){e.__performance_now_clock_drift=performance.now()-t.data.time,e.__emscripten_thread_init(t.data.pthread_ptr,0,0,1),e.establishStackSpace(),e.PThread.receiveObjectTransfer(t.data),e.PThread.threadInitTLS(),s||(n.forEach((t=>{e.executeNotifiedProxyingQueue(t)})),n=[],s=!0);try{e.invokeEntryPoint(t.data.start_routine,t.data.arg)}catch(t){if("unwind"!=t){if(!(t instanceof e.ExitStatus))throw t;e.keepRuntimeAlive()||e.__emscripten_thread_exit(t.status)}}}else"cancel"===t.data.cmd?e._pthread_self()&&e.__emscripten_thread_exit(-1):"setimmediate"===t.data.target||("processProxyingQueue"===t.data.cmd?s?e.executeNotifiedProxyingQueue(t.data.queue):n.push(t.data.queue):(i("worker.js received unknown command "+t.data.cmd),i(t.data)))}catch(t){throw i("worker.js onmessage() captured an uncaught exception: "+t),t&&t.stack&&i(t.stack),e.__emscripten_thread_crashed&&e.__emscripten_thread_crashed(),t}};\\n\'},384:()=>{},993:()=>{},908:()=>{},953:()=>{},925:()=>{},449:()=>{}},e={};function n(r){var a=e[r];if(void 0!==a)return a.exports;var i=e[r]={exports:{}};return t[r].call(i.exports,i,i.exports,n),i.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),(()=>{"use strict";const t=n(349),e=n(361);self.onmessage=n=>{switch(n.data.type){case"init-wasm":(0,e.initializeWebAssembly)(n.data.in).then((()=>postMessage({type:"init-wasm"})),(t=>postMessage({type:"init-wasm",err:t})));break;case"init-ort":try{const{numThreads:e,loggingLevel:r}=n.data.in;(0,t.initOrt)(e,r),postMessage({type:"init-ort"})}catch(t){postMessage({type:"init-ort",err:t})}break;case"create_allocate":try{const{model:e}=n.data.in,r=(0,t.createSessionAllocate)(e);postMessage({type:"create_allocate",out:r})}catch(t){postMessage({type:"create_allocate",err:t})}break;case"create_finalize":try{const{modeldata:e,options:r}=n.data.in,a=(0,t.createSessionFinalize)(e,r);postMessage({type:"create_finalize",out:a})}catch(t){postMessage({type:"create_finalize",err:t})}break;case"create":try{const{model:e,options:r}=n.data.in,a=(0,t.createSession)(e,r);postMessage({type:"create",out:a})}catch(t){postMessage({type:"create",err:t})}break;case"release":try{const e=n.data.in;(0,t.releaseSession)(e),postMessage({type:"release"})}catch(t){postMessage({type:"release",err:t})}break;case"run":try{const{sessionId:e,inputIndices:r,inputs:a,outputIndices:i,options:o}=n.data.in,u=(0,t.run)(e,r,a,i,o);postMessage({type:"run",out:u},(0,t.extractTransferableBuffers)(u))}catch(t){postMessage({type:"run",err:t})}break;case"end-profiling":try{const e=n.data.in;(0,t.endProfiling)(e),postMessage({type:"end-profiling"})}catch(t){postMessage({type:"end-profiling",err:t})}}}})()})();\n',"Worker",void 0,void 0)}},477:t=>{"use strict";t.exports=function(t,e,n,r){var i=self||window;try{try{var s;try{s=new i.Blob([t])}catch(e){(s=new(i.BlobBuilder||i.WebKitBlobBuilder||i.MozBlobBuilder||i.MSBlobBuilder)).append(t),s=s.getBlob()}var o=i.URL||i.webkitURL,a=o.createObjectURL(s),u=new i[e](a,n);return o.revokeObjectURL(a),u}catch(r){return new i[e]("data:application/javascript,".concat(encodeURIComponent(t)),n)}}catch(t){if(!r)throw Error("Inline worker is not supported");return new i[e](r,n)}}},4154:t=>{"use strict";t.exports='"use strict";var e={},t="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node;if(t){var r=require("worker_threads"),a=r.parentPort;a.on("message",(e=>onmessage({data:e})));var o=require("fs");Object.assign(global,{self:global,require:require,Module:e,location:{href:__filename},Worker:r.Worker,importScripts:function(e){(0,eval)(o.readFileSync(e,"utf8"))},postMessage:function(e){a.postMessage(e)},performance:global.performance||{now:function(){return Date.now()}}})}var s=!1,n=[],i=function(){var e=Array.prototype.slice.call(arguments).join(" ");t?o.writeSync(2,e+"\\n"):console.error(e)};self.alert=function(){var t=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:t,threadId:e._pthread_self()})},e.instantiateWasm=(t,r)=>{var a=new WebAssembly.Instance(e.wasmModule,t);return r(a),e.wasmModule=null,a.exports},self.onunhandledrejection=e=>{throw e.reason??e},self.onmessage=t=>{try{if("load"===t.data.cmd){if(e.wasmModule=t.data.wasmModule,e.wasmMemory=t.data.wasmMemory,e.buffer=e.wasmMemory.buffer,e.ENVIRONMENT_IS_PTHREAD=!0,"string"==typeof t.data.urlOrBlob)importScripts(t.data.urlOrBlob);else{var r=URL.createObjectURL(t.data.urlOrBlob);importScripts(r),URL.revokeObjectURL(r)}ortWasmThreaded(e).then((function(t){e=t}))}else if("run"===t.data.cmd){e.__performance_now_clock_drift=performance.now()-t.data.time,e.__emscripten_thread_init(t.data.pthread_ptr,0,0,1),e.establishStackSpace(),e.PThread.receiveObjectTransfer(t.data),e.PThread.threadInitTLS(),s||(n.forEach((t=>{e.executeNotifiedProxyingQueue(t)})),n=[],s=!0);try{e.invokeEntryPoint(t.data.start_routine,t.data.arg)}catch(t){if("unwind"!=t){if(!(t instanceof e.ExitStatus))throw t;e.keepRuntimeAlive()||e.__emscripten_thread_exit(t.status)}}}else"cancel"===t.data.cmd?e._pthread_self()&&e.__emscripten_thread_exit(-1):"setimmediate"===t.data.target||("processProxyingQueue"===t.data.cmd?s?e.executeNotifiedProxyingQueue(t.data.queue):n.push(t.data.queue):(i("worker.js received unknown command "+t.data.cmd),i(t.data)))}catch(t){throw i("worker.js onmessage() captured an uncaught exception: "+t),t&&t.stack&&i(t.stack),e.__emscripten_thread_crashed&&e.__emscripten_thread_crashed(),t}};\n'},1670:t=>{"use strict";t.exports=__WEBPACK_EXTERNAL_MODULE__1670__},7067:()=>{},1296:()=>{},1384:()=>{},3993:()=>{},908:()=>{},6953:()=>{},9925:()=>{},2806:()=>{},6449:()=>{},2850:()=>{},5381:()=>{},5686:(t,e,n)=>{"use strict";n.r(e),n.d(e,{flatbuffers:()=>r});var r={};r.Offset,r.Table,r.SIZEOF_SHORT=2,r.SIZEOF_INT=4,r.FILE_IDENTIFIER_LENGTH=4,r.SIZE_PREFIX_LENGTH=4,r.Encoding={UTF8_BYTES:1,UTF16_STRING:2},r.int32=new Int32Array(2),r.float32=new Float32Array(r.int32.buffer),r.float64=new Float64Array(r.int32.buffer),r.isLittleEndian=1===new Uint16Array(new Uint8Array([1,0]).buffer)[0],r.Long=function(t,e){this.low=0|t,this.high=0|e},r.Long.create=function(t,e){return 0==t&&0==e?r.Long.ZERO:new r.Long(t,e)},r.Long.prototype.toFloat64=function(){return(this.low>>>0)+4294967296*this.high},r.Long.prototype.equals=function(t){return this.low==t.low&&this.high==t.high},r.Long.ZERO=new r.Long(0,0),r.Builder=function(t){if(t)e=t;else var e=1024;this.bb=r.ByteBuffer.allocate(e),this.space=e,this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},r.Builder.prototype.clear=function(){this.bb.clear(),this.space=this.bb.capacity(),this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},r.Builder.prototype.forceDefaults=function(t){this.force_defaults=t},r.Builder.prototype.dataBuffer=function(){return this.bb},r.Builder.prototype.asUint8Array=function(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())},r.Builder.prototype.prep=function(t,e){t>this.minalign&&(this.minalign=t);for(var n=1+~(this.bb.capacity()-this.space+e)&t-1;this.space<n+t+e;){var i=this.bb.capacity();this.bb=r.Builder.growByteBuffer(this.bb),this.space+=this.bb.capacity()-i}this.pad(n)},r.Builder.prototype.pad=function(t){for(var e=0;e<t;e++)this.bb.writeInt8(--this.space,0)},r.Builder.prototype.writeInt8=function(t){this.bb.writeInt8(this.space-=1,t)},r.Builder.prototype.writeInt16=function(t){this.bb.writeInt16(this.space-=2,t)},r.Builder.prototype.writeInt32=function(t){this.bb.writeInt32(this.space-=4,t)},r.Builder.prototype.writeInt64=function(t){this.bb.writeInt64(this.space-=8,t)},r.Builder.prototype.writeFloat32=function(t){this.bb.writeFloat32(this.space-=4,t)},r.Builder.prototype.writeFloat64=function(t){this.bb.writeFloat64(this.space-=8,t)},r.Builder.prototype.addInt8=function(t){this.prep(1,0),this.writeInt8(t)},r.Builder.prototype.addInt16=function(t){this.prep(2,0),this.writeInt16(t)},r.Builder.prototype.addInt32=function(t){this.prep(4,0),this.writeInt32(t)},r.Builder.prototype.addInt64=function(t){this.prep(8,0),this.writeInt64(t)},r.Builder.prototype.addFloat32=function(t){this.prep(4,0),this.writeFloat32(t)},r.Builder.prototype.addFloat64=function(t){this.prep(8,0),this.writeFloat64(t)},r.Builder.prototype.addFieldInt8=function(t,e,n){(this.force_defaults||e!=n)&&(this.addInt8(e),this.slot(t))},r.Builder.prototype.addFieldInt16=function(t,e,n){(this.force_defaults||e!=n)&&(this.addInt16(e),this.slot(t))},r.Builder.prototype.addFieldInt32=function(t,e,n){(this.force_defaults||e!=n)&&(this.addInt32(e),this.slot(t))},r.Builder.prototype.addFieldInt64=function(t,e,n){!this.force_defaults&&e.equals(n)||(this.addInt64(e),this.slot(t))},r.Builder.prototype.addFieldFloat32=function(t,e,n){(this.force_defaults||e!=n)&&(this.addFloat32(e),this.slot(t))},r.Builder.prototype.addFieldFloat64=function(t,e,n){(this.force_defaults||e!=n)&&(this.addFloat64(e),this.slot(t))},r.Builder.prototype.addFieldOffset=function(t,e,n){(this.force_defaults||e!=n)&&(this.addOffset(e),this.slot(t))},r.Builder.prototype.addFieldStruct=function(t,e,n){e!=n&&(this.nested(e),this.slot(t))},r.Builder.prototype.nested=function(t){if(t!=this.offset())throw new Error("FlatBuffers: struct must be serialized inline.")},r.Builder.prototype.notNested=function(){if(this.isNested)throw new Error("FlatBuffers: object serialization must not be nested.")},r.Builder.prototype.slot=function(t){this.vtable[t]=this.offset()},r.Builder.prototype.offset=function(){return this.bb.capacity()-this.space},r.Builder.growByteBuffer=function(t){var e=t.capacity();if(3221225472&e)throw new Error("FlatBuffers: cannot grow buffer beyond 2 gigabytes.");var n=e<<1,i=r.ByteBuffer.allocate(n);return i.setPosition(n-e),i.bytes().set(t.bytes(),n-e),i},r.Builder.prototype.addOffset=function(t){this.prep(r.SIZEOF_INT,0),this.writeInt32(this.offset()-t+r.SIZEOF_INT)},r.Builder.prototype.startObject=function(t){this.notNested(),null==this.vtable&&(this.vtable=[]),this.vtable_in_use=t;for(var e=0;e<t;e++)this.vtable[e]=0;this.isNested=!0,this.object_start=this.offset()},r.Builder.prototype.endObject=function(){if(null==this.vtable||!this.isNested)throw new Error("FlatBuffers: endObject called without startObject");this.addInt32(0);for(var t=this.offset(),e=this.vtable_in_use-1;e>=0&&0==this.vtable[e];e--);for(var n=e+1;e>=0;e--)this.addInt16(0!=this.vtable[e]?t-this.vtable[e]:0);this.addInt16(t-this.object_start);var i=(n+2)*r.SIZEOF_SHORT;this.addInt16(i);var s=0,o=this.space;t:for(e=0;e<this.vtables.length;e++){var a=this.bb.capacity()-this.vtables[e];if(i==this.bb.readInt16(a)){for(var u=r.SIZEOF_SHORT;u<i;u+=r.SIZEOF_SHORT)if(this.bb.readInt16(o+u)!=this.bb.readInt16(a+u))continue t;s=this.vtables[e];break}}return s?(this.space=this.bb.capacity()-t,this.bb.writeInt32(this.space,s-t)):(this.vtables.push(this.offset()),this.bb.writeInt32(this.bb.capacity()-t,this.offset()-t)),this.isNested=!1,t},r.Builder.prototype.finish=function(t,e,n){var i=n?r.SIZE_PREFIX_LENGTH:0;if(e){var s=e;if(this.prep(this.minalign,r.SIZEOF_INT+r.FILE_IDENTIFIER_LENGTH+i),s.length!=r.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+r.FILE_IDENTIFIER_LENGTH);for(var o=r.FILE_IDENTIFIER_LENGTH-1;o>=0;o--)this.writeInt8(s.charCodeAt(o))}this.prep(this.minalign,r.SIZEOF_INT+i),this.addOffset(t),i&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)},r.Builder.prototype.finishSizePrefixed=function(t,e){this.finish(t,e,!0)},r.Builder.prototype.requiredField=function(t,e){var n=this.bb.capacity()-t,r=n-this.bb.readInt32(n);if(0==this.bb.readInt16(r+e))throw new Error("FlatBuffers: field "+e+" must be set")},r.Builder.prototype.startVector=function(t,e,n){this.notNested(),this.vector_num_elems=e,this.prep(r.SIZEOF_INT,t*e),this.prep(n,t*e)},r.Builder.prototype.endVector=function(){return this.writeInt32(this.vector_num_elems),this.offset()},r.Builder.prototype.createString=function(t){if(t instanceof Uint8Array)var e=t;else{e=[];for(var n=0;n<t.length;){var r,i=t.charCodeAt(n++);(r=i<55296||i>=56320?i:(i<<10)+t.charCodeAt(n++)+-56613888)<128?e.push(r):(r<2048?e.push(r>>6&31|192):(r<65536?e.push(r>>12&15|224):e.push(r>>18&7|240,r>>12&63|128),e.push(r>>6&63|128)),e.push(63&r|128))}}this.addInt8(0),this.startVector(1,e.length,1),this.bb.setPosition(this.space-=e.length),n=0;for(var s=this.space,o=this.bb.bytes();n<e.length;n++)o[s++]=e[n];return this.endVector()},r.Builder.prototype.createLong=function(t,e){return r.Long.create(t,e)},r.ByteBuffer=function(t){this.bytes_=t,this.position_=0},r.ByteBuffer.allocate=function(t){return new r.ByteBuffer(new Uint8Array(t))},r.ByteBuffer.prototype.clear=function(){this.position_=0},r.ByteBuffer.prototype.bytes=function(){return this.bytes_},r.ByteBuffer.prototype.position=function(){return this.position_},r.ByteBuffer.prototype.setPosition=function(t){this.position_=t},r.ByteBuffer.prototype.capacity=function(){return this.bytes_.length},r.ByteBuffer.prototype.readInt8=function(t){return this.readUint8(t)<<24>>24},r.ByteBuffer.prototype.readUint8=function(t){return this.bytes_[t]},r.ByteBuffer.prototype.readInt16=function(t){return this.readUint16(t)<<16>>16},r.ByteBuffer.prototype.readUint16=function(t){return this.bytes_[t]|this.bytes_[t+1]<<8},r.ByteBuffer.prototype.readInt32=function(t){return this.bytes_[t]|this.bytes_[t+1]<<8|this.bytes_[t+2]<<16|this.bytes_[t+3]<<24},r.ByteBuffer.prototype.readUint32=function(t){return this.readInt32(t)>>>0},r.ByteBuffer.prototype.readInt64=function(t){return new r.Long(this.readInt32(t),this.readInt32(t+4))},r.ByteBuffer.prototype.readUint64=function(t){return new r.Long(this.readUint32(t),this.readUint32(t+4))},r.ByteBuffer.prototype.readFloat32=function(t){return r.int32[0]=this.readInt32(t),r.float32[0]},r.ByteBuffer.prototype.readFloat64=function(t){return r.int32[r.isLittleEndian?0:1]=this.readInt32(t),r.int32[r.isLittleEndian?1:0]=this.readInt32(t+4),r.float64[0]},r.ByteBuffer.prototype.writeInt8=function(t,e){this.bytes_[t]=e},r.ByteBuffer.prototype.writeUint8=function(t,e){this.bytes_[t]=e},r.ByteBuffer.prototype.writeInt16=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8},r.ByteBuffer.prototype.writeUint16=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8},r.ByteBuffer.prototype.writeInt32=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24},r.ByteBuffer.prototype.writeUint32=function(t,e){this.bytes_[t]=e,this.bytes_[t+1]=e>>8,this.bytes_[t+2]=e>>16,this.bytes_[t+3]=e>>24},r.ByteBuffer.prototype.writeInt64=function(t,e){this.writeInt32(t,e.low),this.writeInt32(t+4,e.high)},r.ByteBuffer.prototype.writeUint64=function(t,e){this.writeUint32(t,e.low),this.writeUint32(t+4,e.high)},r.ByteBuffer.prototype.writeFloat32=function(t,e){r.float32[0]=e,this.writeInt32(t,r.int32[0])},r.ByteBuffer.prototype.writeFloat64=function(t,e){r.float64[0]=e,this.writeInt32(t,r.int32[r.isLittleEndian?0:1]),this.writeInt32(t+4,r.int32[r.isLittleEndian?1:0])},r.ByteBuffer.prototype.getBufferIdentifier=function(){if(this.bytes_.length<this.position_+r.SIZEOF_INT+r.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier.");for(var t="",e=0;e<r.FILE_IDENTIFIER_LENGTH;e++)t+=String.fromCharCode(this.readInt8(this.position_+r.SIZEOF_INT+e));return t},r.ByteBuffer.prototype.__offset=function(t,e){var n=t-this.readInt32(t);return e<this.readInt16(n)?this.readInt16(n+e):0},r.ByteBuffer.prototype.__union=function(t,e){return t.bb_pos=e+this.readInt32(e),t.bb=this,t},r.ByteBuffer.prototype.__string=function(t,e){t+=this.readInt32(t);var n=this.readInt32(t),i="",s=0;if(t+=r.SIZEOF_INT,e===r.Encoding.UTF8_BYTES)return this.bytes_.subarray(t,t+n);for(;s<n;){var o,a=this.readUint8(t+s++);if(a<192)o=a;else{var u=this.readUint8(t+s++);if(a<224)o=(31&a)<<6|63&u;else{var l=this.readUint8(t+s++);o=a<240?(15&a)<<12|(63&u)<<6|63&l:(7&a)<<18|(63&u)<<12|(63&l)<<6|63&this.readUint8(t+s++)}}o<65536?i+=String.fromCharCode(o):(o-=65536,i+=String.fromCharCode(55296+(o>>10),56320+(1023&o)))}return i},r.ByteBuffer.prototype.__indirect=function(t){return t+this.readInt32(t)},r.ByteBuffer.prototype.__vector=function(t){return t+this.readInt32(t)+r.SIZEOF_INT},r.ByteBuffer.prototype.__vector_len=function(t){return this.readInt32(t+this.readInt32(t))},r.ByteBuffer.prototype.__has_identifier=function(t){if(t.length!=r.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+r.FILE_IDENTIFIER_LENGTH);for(var e=0;e<r.FILE_IDENTIFIER_LENGTH;e++)if(t.charCodeAt(e)!=this.readInt8(this.position_+r.SIZEOF_INT+e))return!1;return!0},r.ByteBuffer.prototype.createLong=function(t,e){return r.Long.create(t,e)}}},__webpack_module_cache__={};function __nested_webpack_require_546802__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var n=__webpack_module_cache__[t]={exports:{}};return __webpack_modules__[t].call(n.exports,n,n.exports,__nested_webpack_require_546802__),n.exports}__nested_webpack_require_546802__.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return __nested_webpack_require_546802__.d(e,{a:e}),e},__nested_webpack_require_546802__.d=(t,e)=>{for(var n in e)__nested_webpack_require_546802__.o(e,n)&&!__nested_webpack_require_546802__.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},__nested_webpack_require_546802__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__nested_webpack_require_546802__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),__nested_webpack_require_546802__.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var __nested_webpack_exports__=__nested_webpack_require_546802__(6018);return __nested_webpack_exports__})(),module.exports=e(__webpack_require__(450))},900:(t,e,n)=>{"use strict";function r(t,e){t&&t(e)}function i(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}n.d(e,{v6I:()=>hr,fqH:()=>As,oJL:()=>ks,qYS:()=>nt,_K2:()=>M,jV8:()=>J});const s=class{constructor(){let t=function(...e){return t._call(...e)};return Object.setPrototypeOf(t,new.target.prototype)}_call(...t){throw Error("Must implement _call method in subclass")}};function o(t){return Number.isInteger(t)||"bigint"==typeof t}function a(t){const e=[];let n=t;for(;Array.isArray(n);)e.push(n.length),n=n[0];return e}function u(t,e,n=void 0){const r=t[e];if(void 0!==r)return delete t[e],r;if(void 0===n)throw Error(`Key ${e} does not exist in object.`);return n}function l(...t){return Array.prototype.concat.apply([],t)}function c(...t){return t.reduce(((t,e)=>t.flatMap((t=>e.map((e=>[t,e]))))))}function d(t,e){return Math.abs((t+e)%(2*e)-e)}var h=n(143),p=n(603),f=n(853),g=n(9),m=n(837),_=n(499),b=n(52),y=n.t(b,2),w=n(264),v=n.t(w,2);let x;const T=["wasm"];"undefined"!=typeof process&&"node"===process?.release?.name?(x=b??y,T.unshift("cpu")):(x=w??v,"undefined"!=typeof navigator&&/iP(hone|od|ad).+16_4.+AppleWebKit/.test(navigator.userAgent)&&(x.env.wasm.simd=!1));const{env:S}=x,A="2.16.1",k="undefined"!=typeof self&&"caches"in self,O=!F(g),E=!F(m),I=O&&E,P=I?m.dirname(m.dirname(_.fileURLToPath("file:///home/heiner/gpt4free2/text_to_speech/node_modules/@xenova/transformers/src/env.js"))):"./",D=I?m.join(P,"/.cache/"):null,C="/models/",$=I?m.join(P,C):C;S?.wasm&&(S.wasm.wasmPaths=I?m.join(P,"/dist/"):`https://cdn.jsdelivr.net/npm/@xenova/transformers@${A}/dist/`);const M={backends:{onnx:S,tfjs:{}},__dirname:P,version:A,allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!0,localModelPath:$,useFS:O,useBrowserCache:k,useFSCache:O,cacheDir:D,useCustomCache:!1,customCache:null};function F(t){return 0===Object.keys(t).length}globalThis.ReadableStream||(globalThis.ReadableStream=f.ReadableStream);class L{_CONTENT_TYPE_MAP={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};constructor(t){if(this.filePath=t,this.headers=new Headers,this.exists=h.existsSync(t),this.exists){this.status=200,this.statusText="OK";let e=h.statSync(t);this.headers.set("content-length",e.size.toString()),this.updateContentType();let n=this;this.body=new ReadableStream({start(t){n.arrayBuffer().then((e=>{t.enqueue(new Uint8Array(e)),t.close()}))}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const t=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",this._CONTENT_TYPE_MAP[t]??"application/octet-stream")}clone(){let t=new L(this.filePath);return t.exists=this.exists,t.status=this.status,t.statusText=this.statusText,t.headers=new Headers(this.headers),t}async arrayBuffer(){return(await h.promises.readFile(this.filePath)).buffer}async blob(){const t=await h.promises.readFile(this.filePath);return new Blob([t],{type:this.headers.get("content-type")})}async text(){return await h.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function N(t,e=null){let n;try{n=new URL(t)}catch(t){return!1}return!(e&&!e.includes(n.hostname)||"http:"!==n.protocol&&"https:"!==n.protocol)}async function R(t){if(M.useFS&&!N(t))return new L(t);if("undefined"!=typeof process&&"node"===process?.release?.name){const e=!!process.env?.TESTING_REMOTELY,n=M.version,r=new Headers;if(r.set("User-Agent",`transformers.js/${n}; is_ci/${e};`),N(t,["huggingface.co","hf.co"])){const t=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;t&&r.set("Authorization",`Bearer ${t}`)}return fetch(t,{headers:r})}return fetch(t)}const j={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};class z{constructor(t){this.path=t}async match(t){let e=p.join(this.path,t),n=new L(e);return n.exists?n:void 0}async put(t,e){const n=Buffer.from(await e.arrayBuffer());let r=p.join(this.path,t);try{await h.promises.mkdir(p.dirname(r),{recursive:!0}),await h.promises.writeFile(r,n)}catch(t){console.warn("An error occurred while writing the file to cache:",t)}}}async function B(t,e,n=!0,i={}){if(!M.allowLocalModels){if(i.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!M.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}let s;if(r(i.progress_callback,{status:"initiate",name:t,file:e}),!s&&M.useBrowserCache){if("undefined"==typeof caches)throw Error("Browser cache is not available in this environment.");try{s=await caches.open("transformers-cache")}catch(t){console.warn("An error occurred while opening the browser cache:",t)}}if(!s&&M.useFSCache&&(s=new z(i.cache_dir??M.cacheDir)),!s&&M.useCustomCache){if(!M.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!M.customCache.match||!M.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");s=M.customCache}const o=i.revision??"main";let a,u,l=V(t,e),c=V(M.localModelPath,l),d=V(M.remoteHost,M.remotePathTemplate.replaceAll("{model}",t).replaceAll("{revision}",encodeURIComponent(o)),e),h="main"===o?l:V(t,o,e),p=s instanceof z?h:d,f=!1;s&&(u=await async function(t,...e){for(let n of e)try{let e=await t.match(n);if(e)return e}catch(t){continue}}(s,c,p));const g=void 0!==u;if(void 0===u){if(M.allowLocalModels)if(N(l)){if(i.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${l}.`);if(!M.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${l}.`)}else try{u=await R(c),a=c}catch(t){console.warn(`Unable to load from local path "${c}": "${t}"`)}if(void 0===u||404===u.status){if(i.local_files_only||!M.allowRemoteModels){if(n)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${c}".`);return null}if(u=await R(d),200!==u.status)return function(t,e,n){if(!n)return null;const r=j[t]??`Error (${t}) occurred while trying to load file`;throw Error(`${r}: "${e}".`)}(u.status,d,n);a=p}f=s&&"undefined"!=typeof Response&&u instanceof Response&&200===u.status}r(i.progress_callback,{status:"download",name:t,file:e});const m={status:"progress",name:t,file:e};let _;return i.progress_callback?g&&"undefined"!=typeof navigator&&/firefox/i.test(navigator.userAgent)?(_=new Uint8Array(await u.arrayBuffer()),r(i.progress_callback,{...m,progress:100,loaded:_.length,total:_.length})):_=await async function(t,e){const n=t.headers.get("Content-Length");null===n&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let s=parseInt(n??"0"),o=new Uint8Array(s),a=0;const u=t.body.getReader();return await async function t(){const{done:e,value:n}=await u.read();if(e)return;let l=a+n.length;if(l>s){s=l;let t=new Uint8Array(s);t.set(o),o=t}return o.set(n,a),a=l,(t=>{r(i.progress_callback,{...m,...t})})({progress:a/s*100,loaded:a,total:s}),t()}(),o}(u):_=new Uint8Array(await u.arrayBuffer()),f&&a&&void 0===await s.match(a)&&await s.put(a,new Response(_,{headers:u.headers})).catch((t=>{console.warn(`Unable to add response to browser cache: ${t}.`)})),r(i.progress_callback,{status:"done",name:t,file:e}),_}async function U(t,e,n=!0,r={}){let i=await B(t,e,n,r);if(null===i)return{};let s=new TextDecoder("utf-8").decode(i);return JSON.parse(s)}function V(...t){return(t=t.map(((e,n)=>(n&&(e=e.replace(new RegExp("^/"),"")),n!==t.length-1&&(e=e.replace(new RegExp("/$"),"")),e)))).join("/")}function G(t){const e=H(t)[0],n=t.map((t=>Math.exp(t-e))),r=n.reduce(((t,e)=>t+e),0);return n.map((t=>t/r))}function q(t,e=0){return t=Array.from(t).map(((t,e)=>[e,t])).sort(((t,e)=>e[1]-t[1])),null!==e&&e>0&&(t=t.slice(0,e)),t}function W(t){if(0===t.length)throw Error("Array must not be empty");let e=t[0],n=0;for(let r=1;r<t.length;++r)t[r]<e&&(e=t[r],n=r);return[e,n]}function H(t){if(0===t.length)throw Error("Array must not be empty");let e=t[0],n=0;for(let r=1;r<t.length;++r)t[r]>e&&(e=t[r],n=r);return[Number(e),n]}function X(t){return t>0&&!(t&t-1)}class Y{constructor(t){if(this.size=0|t,this.size<=1||!X(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=t<<1,this.table=new Float64Array(2*this.size);for(let t=0;t<this.table.length;t+=2){const e=Math.PI*t/this.size;this.table[t]=Math.cos(e),this.table[t+1]=-Math.sin(e)}let e=0;for(let t=1;this.size>t;t<<=1)++e;this._width=e%2==0?e-1:e,this._bitrev=new Int32Array(1<<this._width);for(let t=0;t<this._bitrev.length;++t){this._bitrev[t]=0;for(let e=0;e<this._width;e+=2){const n=this._width-e-2;this._bitrev[t]|=(t>>>e&3)<<n}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(t,e){const n=e||new Array(t.length>>>1);for(let e=0;e<t.length;e+=2)n[e>>>1]=t[e];return n}toComplexArray(t,e){const n=e||this.createComplexArray();for(let e=0;e<n.length;e+=2)n[e]=t[e>>>1],n[e+1]=0;return n}completeSpectrum(t){const e=this._csize,n=e>>>1;for(let r=2;r<n;r+=2)t[e-r]=t[r],t[e-r+1]=-t[r+1]}transform(t,e){if(t===e)throw new Error("Input and output buffers must be different");this._transform4(t,e,1)}realTransform(t,e){if(t===e)throw new Error("Input and output buffers must be different");this._realTransform4(t,e,1)}inverseTransform(t,e){if(t===e)throw new Error("Input and output buffers must be different");this._transform4(t,e,-1);for(let e=0;e<t.length;++e)t[e]/=this.size}_transform4(t,e,n){const r=this._csize;let i,s,o=1<<this._width,a=r/o<<1;const u=this._bitrev;if(4===a)for(i=0,s=0;i<r;i+=a,++s){const n=u[s];this._singleTransform2(e,t,i,n,o)}else for(i=0,s=0;i<r;i+=a,++s){const r=u[s];this._singleTransform4(e,t,i,r,o,n)}for(o>>=2;o>=2;o>>=2){a=r/o<<1;const e=a>>>2;for(i=0;i<r;i+=a){const r=i+e-1;for(let s=i,a=0;s<r;s+=2,a+=o){const r=s,i=r+e,o=i+e,u=o+e,l=t[r],c=t[r+1],d=t[i],h=t[i+1],p=t[o],f=t[o+1],g=t[u],m=t[u+1],_=this.table[a],b=n*this.table[a+1],y=d*_-h*b,w=d*b+h*_,v=this.table[2*a],x=n*this.table[2*a+1],T=p*v-f*x,S=p*x+f*v,A=this.table[3*a],k=n*this.table[3*a+1],O=g*A-m*k,E=g*k+m*A,I=l+T,P=c+S,D=l-T,C=c-S,$=y+O,M=w+E,F=n*(y-O),L=n*(w-E);t[r]=I+$,t[r+1]=P+M,t[i]=D+L,t[i+1]=C-F,t[o]=I-$,t[o+1]=P-M,t[u]=D-L,t[u+1]=C+F}}}}_singleTransform2(t,e,n,r,i){const s=t[r],o=t[r+1],a=t[r+i],u=t[r+i+1];e[n]=s+a,e[n+1]=o+u,e[n+2]=s-a,e[n+3]=o-u}_singleTransform4(t,e,n,r,i,s){const o=2*i,a=3*i,u=t[r],l=t[r+1],c=t[r+i],d=t[r+i+1],h=t[r+o],p=t[r+o+1],f=t[r+a],g=t[r+a+1],m=u+h,_=l+p,b=u-h,y=l-p,w=c+f,v=d+g,x=s*(c-f),T=s*(d-g);e[n]=m+w,e[n+1]=_+v,e[n+2]=b+T,e[n+3]=y-x,e[n+4]=m-w,e[n+5]=_-v,e[n+6]=b-T,e[n+7]=y+x}_realTransform4(t,e,n){const r=this._csize;let i,s,o=1<<this._width,a=r/o<<1;const u=this._bitrev;if(4===a)for(i=0,s=0;i<r;i+=a,++s){const n=u[s];this._singleRealTransform2(e,t,i,n>>>1,o>>>1)}else for(i=0,s=0;i<r;i+=a,++s){const r=u[s];this._singleRealTransform4(e,t,i,r>>>1,o>>>1,n)}for(o>>=2;o>=2;o>>=2){a=r/o<<1;const e=a>>>2;for(i=0;i<r;i+=a){const r=i+e-1;for(let s=i,a=0;s<r;s+=2,a+=o){const r=s,i=r+e,o=i+e,u=o+e,l=t[r],c=t[r+1],d=t[i],h=t[i+1],p=t[o],f=t[o+1],g=t[u],m=t[u+1],_=this.table[a],b=n*this.table[a+1],y=d*_-h*b,w=d*b+h*_,v=this.table[2*a],x=n*this.table[2*a+1],T=p*v-f*x,S=p*x+f*v,A=this.table[3*a],k=n*this.table[3*a+1],O=g*A-m*k,E=g*k+m*A,I=l+T,P=c+S,D=l-T,C=c-S,$=y+O,M=w+E,F=n*(y-O),L=n*(w-E);t[r]=I+$,t[r+1]=P+M,t[i]=D+L,t[i+1]=C-F,t[o]=I-$,t[o+1]=P-M,t[u]=D-L,t[u+1]=C+F}}}}_singleRealTransform2(t,e,n,r,i){const s=t[r],o=t[r+i];e[n]=s+o,e[n+1]=0,e[n+2]=s-o,e[n+3]=0}_singleRealTransform4(t,e,n,r,i,s){const o=2*i,a=3*i,u=t[r],l=t[r+i],c=t[r+o],d=t[r+a],h=u+c,p=u-c,f=l+d,g=s*(l-d);e[n]=h+f,e[n+1]=0,e[n+2]=p,e[n+3]=-g,e[n+4]=h-f,e[n+5]=0,e[n+6]=p,e[n+7]=g}}class K{constructor(t){const e=2*(t-1),n=2*(2*t-1),r=2**Math.ceil(Math.log2(n));this.bufferSize=r,this._a=e;const i=new Float64Array(n),s=new Float64Array(r);this._chirpBuffer=new Float64Array(r),this._buffer1=new Float64Array(r),this._buffer2=new Float64Array(r),this._outBuffer1=new Float64Array(r),this._outBuffer2=new Float64Array(r);const o=-2*Math.PI/t,a=Math.cos(o),u=Math.sin(o);for(let e=0;e<n>>1;++e){const n=(e+1-t)**2/2,r=Math.sqrt(a**2+u**2)**n,o=n*Math.atan2(u,a),l=2*e;i[l]=r*Math.cos(o),i[l+1]=r*Math.sin(o),s[l]=i[l],s[l+1]=-i[l+1]}this._slicedChirpBuffer=i.subarray(e,n),this._f=new Y(r>>1),this._f.transform(this._chirpBuffer,s)}_transform(t,e,n){const r=this._buffer1,i=this._buffer2,s=this._outBuffer1,o=this._outBuffer2,a=this._chirpBuffer,u=this._slicedChirpBuffer,l=this._a;if(n)for(let t=0;t<u.length;t+=2){const n=t+1,i=e[t>>1];r[t]=i*u[t],r[n]=i*u[n]}else for(let t=0;t<u.length;t+=2){const n=t+1;r[t]=e[t]*u[t]-e[n]*u[n],r[n]=e[t]*u[n]+e[n]*u[t]}this._f.transform(s,r);for(let t=0;t<a.length;t+=2){const e=t+1;i[t]=s[t]*a[t]-s[e]*a[e],i[e]=s[t]*a[e]+s[e]*a[t]}this._f.inverseTransform(o,i);for(let e=0;e<o.length;e+=2){const n=o[e+l],r=o[e+l+1],i=u[e],s=u[e+1];t[e]=n*i-r*s,t[e+1]=n*s+r*i}}transform(t,e){this._transform(t,e,!1)}realTransform(t,e){this._transform(t,e,!0)}}class Z{constructor(t){this.fft_length=t,this.isPowerOfTwo=X(t),this.isPowerOfTwo?(this.fft=new Y(t),this.outputBufferSize=2*t):(this.fft=new K(t),this.outputBufferSize=this.fft.bufferSize)}realTransform(t,e){this.fft.realTransform(t,e)}transform(t,e){this.fft.transform(t,e)}}function J(t,e){if(e%2==0||e<=0)throw new Error("Window size must be a positive odd number");const n=new t.constructor(t.length),r=new t.constructor(e),i=Math.floor(e/2);for(let e=0;e<t.length;++e){let s=0;for(let n=-i;n<=i;++n){let i=e+n;i<0?i=Math.abs(i):i>=t.length&&(i=2*(t.length-1)-i),r[s++]=t[i]}r.sort(),n[e]=r[i]}return n}function Q(t,e){const n=Math.pow(10,e);return Math.round(t*n)/n}const tt=Object.freeze({float32:Float32Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array}),et=x.Tensor;class nt{dims;type;data;size;constructor(...t){return t[0]instanceof et?Object.assign(this,t[0]):Object.assign(this,new et(t[0],t[1],t[2])),new Proxy(this,{get:(t,e)=>{if("string"==typeof e){let n=Number(e);if(Number.isInteger(n))return t._getitem(n)}return t[e]},set:(t,e,n)=>t[e]=n})}*[Symbol.iterator](){const[t,...e]=this.dims;if(e.length>0){const n=e.reduce(((t,e)=>t*e));for(let r=0;r<t;++r)yield this._subarray(r,n,e)}else yield*this.data}_getitem(t){const[e,...n]=this.dims;if(t=ot(t,e),n.length>0){const e=n.reduce(((t,e)=>t*e));return this._subarray(t,e,n)}return new nt(this.type,[this.data[t]],n)}indexOf(t){for(let e=0;e<this.data.length;++e)if(this.data[e]==t)return e;return-1}_subarray(t,e,n){const r=t*e,i=(t+1)*e,s="subarray"in this.data?this.data.subarray(r,i):this.data.slice(r,i);return new nt(this.type,s,n)}item(){if(1!==this.data.length)throw new Error(`a Tensor with ${this.data.length} elements cannot be converted to Scalar`);return this.data[0]}tolist(){return function(t,e){const n=t.length;if(n!==e.reduce(((t,e)=>t*e)))throw Error(`cannot reshape array of size ${n} into shape (${e})`);let r=t;for(let t=e.length-1;t>=0;t--)r=r.reduce(((n,r)=>{let i=n[n.length-1];return i.length<e[t]?i.push(r):n.push([r]),n}),[[]]);return r[0]}(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){for(let t=0;t<this.data.length;++t)this.data[t]=1/(1+Math.exp(-this.data[t]));return this}mul(t){return this.clone().mul_(t)}mul_(t){for(let e=0;e<this.data.length;++e)this.data[e]*=t;return this}add(t){return this.clone().add_(t)}add_(t){for(let e=0;e<this.data.length;++e)this.data[e]+=t;return this}clone(){return new nt(this.type,this.data.slice(),this.dims.slice())}slice(...t){let e=[],n=[];for(let r=0;r<this.dims.length;++r){let i=t[r];if(null==i)n.push([0,this.dims[r]]),e.push(this.dims[r]);else if("number"==typeof i)i=ot(i,this.dims[r],r),n.push([i,i+1]);else{if(!Array.isArray(i)||2!==i.length)throw new Error(`Invalid slice: ${i}`);{if(i[0]>i[1])throw new Error(`Invalid slice: ${i}`);let t=[Math.max(i[0],0),Math.min(i[1],this.dims[r])];n.push(t),e.push(t[1]-t[0])}}}let r=n.map((([t,e])=>e-t)),i=r.reduce(((t,e)=>t*e)),s=new this.data.constructor(i);const o=this.stride();for(let t=0;t<i;++t){let e=0;for(let i=r.length-1,s=t;i>=0;--i){const t=r[i];e+=(s%t+n[i][0])*o[i],s=Math.floor(s/t)}s[t]=this.data[e]}return new nt(this.type,s,e)}permute(...t){return function(t,e){const[n,r]=function(t,e,n){const r=new Array(n.length),i=new Array(n.length);for(let t=n.length-1,s=1;t>=0;--t)i[t]=s,r[t]=e[n[t]],s*=r[t];const s=n.map(((t,e)=>i[n.indexOf(e)])),o=new t.constructor(t.length);for(let n=0;n<t.length;++n){let r=0;for(let t=e.length-1,i=n;t>=0;--t)r+=i%e[t]*s[t],i=Math.floor(i/e[t]);o[r]=t[n]}return[o,r]}(t.data,t.dims,e);return new nt(t.type,n,r)}(this,t)}transpose(...t){return this.permute(...t)}sum(t=null,e=!1){return this.norm(1,t,e)}norm(t="fro",e=null,n=!1){if("fro"===t)t=2;else if("string"==typeof t)throw Error(`Unsupported norm: ${t}`);if(null===e){let e=this.data.reduce(((e,n)=>e+n**t),0)**(1/t);return new nt(this.type,[e],[])}e=ot(e,this.dims.length);const r=this.dims.slice();r[e]=1;const i=new this.data.constructor(this.data.length/this.dims[e]);for(let n=0;n<this.data.length;++n){let s=0;for(let t=this.dims.length-1,i=n,o=1;t>=0;--t){const n=this.dims[t];t!==e&&(s+=i%n*o,o*=r[t]),i=Math.floor(i/n)}i[s]+=this.data[n]**t}if(1!==t)for(let e=0;e<i.length;++e)i[e]=i[e]**(1/t);return n||r.splice(e,1),new nt(this.type,i,r)}normalize_(t=2,e=1){e=ot(e,this.dims.length);const n=this.norm(t,e,!0);for(let t=0;t<this.data.length;++t){let r=0;for(let n=this.dims.length-1,i=t,s=1;n>=0;--n){const t=this.dims[n];n!==e&&(r+=i%t*s,s*=this.dims[n]),i=Math.floor(i/t)}this.data[t]/=n.data[r]}return this}normalize(t=2,e=1){return this.clone().normalize_(t,e)}stride(){return function(t){const e=new Array(t.length);for(let n=t.length-1,r=1;n>=0;--n)e[n]=r,r*=t[n];return e}(this.dims)}squeeze(t=null){return new nt(this.type,this.data,it(this.dims,t))}squeeze_(t=null){return this.dims=it(this.dims,t),this}unsqueeze(t=null){return new nt(this.type,this.data,st(this.dims,t))}unsqueeze_(t=null){return this.dims=st(this.dims,t),this}flatten_(t=0,e=-1){e=(e+this.dims.length)%this.dims.length;let n=this.dims.slice(0,t),r=this.dims.slice(t,e+1),i=this.dims.slice(e+1);return this.dims=[...n,r.reduce(((t,e)=>t*e),1),...i],this}flatten(t=0,e=-1){return this.clone().flatten_(t,e)}view(...t){let e=-1;for(let n=0;n<t.length;++n)if(-1===t[n]){if(-1!==e)throw new Error("Only one dimension can be inferred");e=n}if(-1!==e){const n=t.reduce(((t,n,r)=>r!==e?t*n:t),1);t[e]=this.data.length/n}return new nt(this.type,this.data,t)}neg_(){for(let t=0;t<this.data.length;++t)this.data[t]=-this.data[t];return this}neg(){return this.clone().neg_()}clamp_(t,e){for(let n=0;n<this.data.length;++n)this.data[n]=Math.min(Math.max(this.data[n],t),e);return this}clamp(t,e){return this.clone().clamp_(t,e)}round_(){for(let t=0;t<this.data.length;++t)this.data[t]=Math.round(this.data[t]);return this}round(){return this.clone().round_()}to(t){if(this.type===t)return this;if(!tt.hasOwnProperty(t))throw new Error(`Unsupported type: ${t}`);return new nt(t,tt[t].from(this.data),this.dims)}}function rt(t,[e,n],r="bilinear",i=!1){const s=t.dims.at(-3)??1,o=t.dims.at(-2),a=t.dims.at(-1);let u=function(t,[e,n,r],[i,s],o="bilinear",a=!1){const u=s/r,l=i/n,c=new t.constructor(i*s*e),d=n*r,h=i*s;for(let o=0;o<i;++o)for(let i=0;i<s;++i){const a=o*s+i,p=(i+.5)/u-.5,f=(o+.5)/l-.5;let g=Math.floor(p),m=Math.floor(f);const _=Math.min(g+1,r-1),b=Math.min(m+1,n-1);g=Math.max(g,0),m=Math.max(m,0);const y=p-g,w=f-m,v=(1-y)*(1-w),x=y*(1-w),T=(1-y)*w,S=y*w,A=m*r,k=b*r,O=A+g,E=A+_,I=k+g,P=k+_;for(let n=0;n<e;++n){const e=n*d;c[n*h+a]=v*t[e+O]+x*t[e+E]+T*t[e+I]+S*t[e+P]}}return c}(t.data,[s,o,a],[e,n],r,i);return new nt(t.type,u,[s,e,n])}function it(t,e){return t=t.slice(),null===e?t=t.filter((t=>1!==t)):"number"==typeof e?1===t[e]&&t.splice(e,1):Array.isArray(e)&&(t=t.filter(((t,n)=>1!==t||!e.includes(n)))),t}function st(t,e){return e=ot(e,t.length+1),(t=t.slice()).splice(e,0,1),t}function ot(t,e,n=null){if(t<-e||t>=e)throw new Error(`IndexError: index ${t} is out of bounds for dimension${null===n?"":" "+n} with size ${e}`);return t<0&&(t=(t%e+e)%e),t}function at(t,e=0){e=ot(e,t[0].dims.length);const n=t[0].dims.slice();n[e]=t.reduce(((t,n)=>t+n.dims[e]),0);const r=n.reduce(((t,e)=>t*e),1),i=new t[0].data.constructor(r),s=t[0].type;if(0===e){let e=0;for(let n of t)i.set(n.data,e),e+=n.data.length}else{let r=0;for(let s=0;s<t.length;++s){let o=t[s];for(let t=0;t<o.data.length;++t){let s=0;for(let i=o.dims.length-1,a=t,u=1;i>=0;--i){const t=o.dims[i];let l=a%t;i===e&&(l+=r),s+=l*u,u*=n[i],a=Math.floor(a/t)}i[s]=o.data[t]}r+=o.dims[e]}}return new nt(s,i,n)}function ut(t,e=0){return at(t.map((t=>t.unsqueeze(e))),e)}function lt(t,e=null,n=!1){if(null===e){let e=t.data.reduce(((t,e)=>t+e),0);return new nt(t.type,[e/t.data.length],[])}e=ot(e,t.dims.length);const r=t.dims.slice();r[e]=1;const i=new t.data.constructor(t.data.length/t.dims[e]);for(let n=0;n<t.data.length;++n){let s=0;for(let i=t.dims.length-1,o=n,a=1;i>=0;--i){const n=t.dims[i];i!==e&&(s+=o%n*a,a*=r[i]),o=Math.floor(o/n)}i[s]+=t.data[n]}if(1!==t.dims[e])for(let n=0;n<i.length;++n)i[n]=i[n]/t.dims[e];return n||r.splice(e,1),new nt(t.type,i,r)}function ct(t){const[e,n]=t.dims,r=[e+1,n+1],i=new nt("float32",new Float32Array(r[0]*r[1]).fill(1/0),r),s=new nt("float32",new Float32Array(r[0]*r[1]).fill(-1),r);i[0].data[0]=0;for(let r=1;r<n+1;++r)for(let n=1;n<e+1;++n){const e=i[n-1][r-1].item(),o=i[n-1][r].item(),a=i[n][r-1].item();let u,l;e<o&&e<a?(u=e,l=0):o<e&&o<a?(u=o,l=1):(u=a,l=2),i[n].data[r]=t[n-1][r-1].item()+u,s[n].data[r]=l}let o=e,a=n;s.data.fill(2,0,r[1]);for(let t=0;t<r[0];++t)s[t].data[0]=1;let u=[],l=[];for(;o>0||a>0;)switch(u.push(o-1),l.push(a-1),s[o][a].item()){case 0:--o,--a;break;case 1:--o;break;case 2:--a;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${o}, ${a}]. Please file a bug report.`)}return u.reverse(),l.reverse(),[u,l]}class dt{constructor(t=((t,e)=>t>e)){this._heap=[],this._comparator=t}get size(){return this._heap.length}isEmpty(){return 0===this.size}peek(){return this._heap[0]}push(...t){return this.extend(t)}extend(t){for(const e of t)this._heap.push(e),this._siftUp();return this.size}pop(){const t=this.peek(),e=this.size-1;return e>0&&this._swap(0,e),this._heap.pop(),this._siftDown(),t}replace(t){const e=this.peek();return this._heap[0]=t,this._siftDown(),e}_parent(t){return(t+1>>>1)-1}_left(t){return 1+(t<<1)}_right(t){return t+1<<1}_greater(t,e){return this._comparator(this._heap[t],this._heap[e])}_swap(t,e){const n=this._heap[t];this._heap[t]=this._heap[e],this._heap[e]=n}_siftUp(){let t=this.size-1;for(;t>0&&this._greater(t,this._parent(t));)this._swap(t,this._parent(t)),t=this._parent(t)}_siftDown(){let t=0;for(;this._left(t)<this.size&&this._greater(this._left(t),t)||this._right(t)<this.size&&this._greater(this._right(t),t);){const e=this._right(t)<this.size&&this._greater(this._right(t),this._left(t))?this._right(t):this._left(t);this._swap(t,e),t=e}}}class ht{constructor(){this.root=pt.default()}extend(t){for(let e of t)this.push(e)}push(t){let e=this.root;for(let n of t){let t=e.children.get(n);void 0===t&&(t=pt.default(),e.children.set(n,t)),e=t}e.isLeaf=!0}*commonPrefixSearch(t){let e=this.root,n="";for(let r=0;r<t.length&&void 0!==e;++r){const i=t[r];n+=i,e=e.children.get(i),void 0!==e&&e.isLeaf&&(yield n)}}}class pt{constructor(t,e){this.isLeaf=t,this.children=e}static default(){return new pt(!1,new Map)}}class ft{constructor(t,e,n){this.sentence=t,this.len=t.length,this.bosTokenId=e,this.eosTokenId=n,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},(()=>[])),this.endNodes=Array.from({length:this.len+1},(()=>[]));const r=new gt(this.bosTokenId,0,0,0,0),i=new gt(this.eosTokenId,1,this.len,0,0);this.nodes.push(r.clone()),this.nodes.push(i.clone()),this.beginNodes[this.len].push(i),this.endNodes[0].push(r)}insert(t,e,n,r){const i=this.nodes.length,s=new gt(r,i,t,e,n);this.beginNodes[t].push(s),this.endNodes[t+e].push(s),this.nodes.push(s)}viterbi(){const t=this.len;let e=0;for(;e<=t;){if(0==this.beginNodes[e].length)return[];for(let t of this.beginNodes[e]){t.prev=null;let n=0,r=null;for(let i of this.endNodes[e]){const e=i.backtraceScore+t.score;(null===r||e>n)&&(r=i.clone(),n=e)}if(null===r)return[];t.prev=r,t.backtraceScore=n}++e}const n=[],r=this.beginNodes[t][0].prev;if(null===r)return[];let i=r.clone();for(;null!==i.prev;){n.push(i.clone());const t=i.clone();i=t.prev.clone()}return n.reverse(),n}piece(t){return this.sentence.slice(t.pos,t.pos+t.length)}tokens(){return this.viterbi().map((t=>this.piece(t)))}tokenIds(){return this.viterbi().map((t=>t.tokenId))}}class gt{constructor(t,e,n,r,i){this.tokenId=t,this.nodeId=e,this.pos=n,this.length=r,this.score=i,this.prev=null,this.backtraceScore=0}clone(){const t=new gt(this.tokenId,this.nodeId,this.pos,this.length,this.score);return t.prev=this.prev,t.backtraceScore=this.backtraceScore,t}}var mt=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator"}),_t=Object.freeze({set:mt.Set,for:mt.For,in:mt.In,is:mt.Is,if:mt.If,else:mt.Else,endif:mt.EndIf,elif:mt.ElseIf,endfor:mt.EndFor,and:mt.And,or:mt.Or,not:mt.Not,"not in":mt.NotIn,true:mt.BooleanLiteral,false:mt.BooleanLiteral}),bt=class{constructor(t,e){this.value=t,this.type=e}};function yt(t){return/\w/.test(t)}function wt(t){return/[0-9]/.test(t)}var vt=[["{%",mt.OpenStatement],["%}",mt.CloseStatement],["{{",mt.OpenExpression],["}}",mt.CloseExpression],["(",mt.OpenParen],[")",mt.CloseParen],["{",mt.OpenCurlyBracket],["}",mt.CloseCurlyBracket],["[",mt.OpenSquareBracket],["]",mt.CloseSquareBracket],[",",mt.Comma],[".",mt.Dot],[":",mt.Colon],["|",mt.Pipe],["<=",mt.ComparisonBinaryOperator],[">=",mt.ComparisonBinaryOperator],["==",mt.ComparisonBinaryOperator],["!=",mt.ComparisonBinaryOperator],["<",mt.ComparisonBinaryOperator],[">",mt.ComparisonBinaryOperator],["+",mt.AdditiveBinaryOperator],["-",mt.AdditiveBinaryOperator],["*",mt.MultiplicativeBinaryOperator],["/",mt.MultiplicativeBinaryOperator],["%",mt.MultiplicativeBinaryOperator],["=",mt.Equals]],xt=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]),Tt=class{type="Statement"},St=class extends Tt{constructor(t){super(),this.body=t}type="Program"},At=class extends Tt{constructor(t,e,n){super(),this.test=t,this.body=e,this.alternate=n}type="If"},kt=class extends Tt{constructor(t,e,n){super(),this.loopvar=t,this.iterable=e,this.body=n}type="For"},Ot=class extends Tt{constructor(t,e){super(),this.assignee=t,this.value=e}type="Set"},Et=class extends Tt{type="Expression"},It=class extends Et{constructor(t,e,n){super(),this.object=t,this.property=e,this.computed=n}type="MemberExpression"},Pt=class extends Et{constructor(t,e){super(),this.callee=t,this.args=e}type="CallExpression"},Dt=class extends Et{constructor(t){super(),this.value=t}type="Identifier"},Ct=class extends Et{constructor(t){super(),this.value=t}type="Literal"},$t=class extends Ct{type="NumericLiteral"},Mt=class extends Ct{type="StringLiteral"},Ft=class extends Ct{type="BooleanLiteral"},Lt=class extends Ct{type="ArrayLiteral"},Nt=class extends Ct{type="TupleLiteral"},Rt=class extends Ct{type="ObjectLiteral"},jt=class extends Et{constructor(t,e,n){super(),this.operator=t,this.left=e,this.right=n}type="BinaryExpression"},zt=class extends Et{constructor(t,e){super(),this.operand=t,this.filter=e}type="FilterExpression"},Bt=class extends Et{constructor(t,e,n){super(),this.operand=t,this.negate=e,this.test=n}type="TestExpression"},Ut=class extends Et{constructor(t,e){super(),this.operator=t,this.argument=e}type="UnaryExpression"},Vt=class extends Et{constructor(t=void 0,e=void 0,n=void 0){super(),this.start=t,this.stop=e,this.step=n}type="SliceExpression"},Gt=class extends Et{constructor(t,e){super(),this.key=t,this.value=e}type="KeywordArgumentExpression"};function qt(t){const e=new St([]);let n=0;function r(e,r){const i=t[n++];if(!i||i.type!==e)throw new Error(`Parser Error: ${r}. ${i.type} !== ${e}.`);return i}function i(){switch(t[n].type){case mt.Text:return new Mt(r(mt.Text,"Expected text token").value);case mt.OpenStatement:return function(){let e;switch(r(mt.OpenStatement,"Expected opening statement token"),t[n].type){case mt.Set:++n,e=a(),r(mt.CloseStatement,"Expected closing statement token");break;case mt.If:++n,e=u(),r(mt.OpenStatement,"Expected {% token"),r(mt.EndIf,"Expected endif token"),r(mt.CloseStatement,"Expected %} token");break;case mt.For:++n,e=function(){const t=l(!0);if(!(t instanceof Dt||t instanceof Nt))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${t.type} instead`);r(mt.In,"Expected `in` keyword following loop variable");const e=c();r(mt.CloseStatement,"Expected closing statement token");const n=[];for(;s(mt.OpenStatement,mt.EndFor);)n.push(i());return new kt(t,e,n)}(),r(mt.OpenStatement,"Expected {% token"),r(mt.EndFor,"Expected endfor token"),r(mt.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${t[n].type}`)}return e}();case mt.OpenExpression:return function(){r(mt.OpenExpression,"Expected opening expression token");const t=c();return r(mt.CloseExpression,"Expected closing expression token"),t}();default:throw new SyntaxError(`Unexpected token type: ${t[n].type}`)}}function s(...e){return n+e.length<=t.length&&e.some(((e,r)=>e!==t[n+r].type))}function o(...e){return n+e.length<=t.length&&e.every(((e,r)=>e===t[n+r].type))}function a(){const t=c();if(o(mt.Equals)){++n;const e=a();return new Ot(t,e)}return t}function u(){const e=c();r(mt.CloseStatement,"Expected closing statement token");const s=[],a=[];for(;t[n]?.type!==mt.OpenStatement||t[n+1]?.type!==mt.ElseIf&&t[n+1]?.type!==mt.Else&&t[n+1]?.type!==mt.EndIf;)s.push(i());if(t[n]?.type===mt.OpenStatement&&t[n+1]?.type!==mt.EndIf)if(++n,o(mt.ElseIf))r(mt.ElseIf,"Expected elseif token"),a.push(u());else for(r(mt.Else,"Expected else token"),r(mt.CloseStatement,"Expected closing statement token");t[n]?.type!==mt.OpenStatement||t[n+1]?.type!==mt.EndIf;)a.push(i());return new At(e,s,a)}function l(t=!1){const e=t?y:c,r=[e()],i=o(mt.Comma);for(;i&&(++n,r.push(e()),o(mt.Comma)););return i?new Nt(r):r[0]}function c(){return function(){const t=d();if(o(mt.If)){++n;const e=d();r(mt.Else,"Expected else token");const i=d();return new At(e,[t],[i])}return t}()}function d(){let e=h();for(;o(mt.Or);){const r=t[n];++n;const i=h();e=new jt(r,e,i)}return e}function h(){let e=p();for(;o(mt.And);){const r=t[n];++n;const i=p();e=new jt(r,e,i)}return e}function p(){let e;for(;o(mt.Not);){const r=t[n];++n;const i=p();e=new Ut(r,i)}return e??function(){let e=f();for(;o(mt.ComparisonBinaryOperator)||o(mt.In)||o(mt.NotIn);){const r=t[n];++n;const i=f();e=new jt(r,e,i)}return e}()}function f(){let e=_();for(;o(mt.AdditiveBinaryOperator);){const r=t[n];++n;const i=_();e=new jt(r,e,i)}return e}function g(t){let e=new Pt(t,function(){r(mt.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!o(mt.CloseParen);){let e=c();if(o(mt.Equals)){if(++n,!(e instanceof Dt))throw new SyntaxError("Expected identifier for keyword argument");const t=c();e=new Gt(e,t)}t.push(e),o(mt.Comma)&&++n}return t}();return r(mt.CloseParen,"Expected closing parenthesis for arguments list"),t}());return o(mt.OpenParen)&&(e=g(e)),e}function m(){const t=[];let e=!1;for(;!o(mt.CloseSquareBracket);)o(mt.Colon)?(t.push(void 0),++n,e=!0):(t.push(c()),o(mt.Colon)&&(++n,e=!0));if(0===t.length)throw new SyntaxError("Expected at least one argument for member/slice expression");if(e){if(t.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new Vt(...t)}return t[0]}function _(){let e=b();for(;o(mt.MultiplicativeBinaryOperator);){const r=t[n];++n;const i=b();e=new jt(r,e,i)}return e}function b(){let e=function(){let e=function(){const e=function(){let e=y();for(;o(mt.Dot)||o(mt.OpenSquareBracket);){const i=t[n];let s;++n;const o=i.type!==mt.Dot;if(o)s=m(),r(mt.CloseSquareBracket,"Expected closing square bracket");else if(s=y(),"Identifier"!==s.type)throw new SyntaxError("Expected identifier following dot operator");e=new It(e,s,o)}return e}();return o(mt.OpenParen)?g(e):e}();for(;o(mt.Pipe);){++n;let t=y();if(!(t instanceof Dt))throw new SyntaxError("Expected identifier for the filter");o(mt.OpenParen)&&(t=g(t)),e=new zt(e,t)}return e}();for(;o(mt.Is);){++n;const t=o(mt.Not);t&&++n;let r=y();if(r instanceof Ft&&(r=new Dt(r.value.toString())),!(r instanceof Dt))throw new SyntaxError("Expected identifier for the test");e=new Bt(e,t,r)}return e}function y(){const e=t[n];switch(e.type){case mt.NumericLiteral:return++n,new $t(Number(e.value));case mt.StringLiteral:return++n,new Mt(e.value);case mt.BooleanLiteral:return++n,new Ft("true"===e.value);case mt.Identifier:return++n,new Dt(e.value);case mt.OpenParen:{++n;const e=l();if(t[n].type!==mt.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${t[n].type} instead`);return++n,e}case mt.OpenSquareBracket:{++n;const t=[];for(;!o(mt.CloseSquareBracket);)t.push(c()),o(mt.Comma)&&++n;return++n,new Lt(t)}case mt.OpenCurlyBracket:{++n;const t=new Map;for(;!o(mt.CloseCurlyBracket);){const e=c();r(mt.Colon,"Expected colon between key and value in object literal");const i=c();t.set(e,i),o(mt.Comma)&&++n}return++n,new Rt(t)}default:throw new SyntaxError(`Unexpected token: ${e.type}`)}}for(;n<t.length;)e.body.push(i());return e}function Wt(t,e,n=1){void 0===e&&(e=t,t=0);const r=[];for(let i=t;i<e;i+=n)r.push(i);return r}function Ht(t,e,n,r=1){const i=Math.sign(r);i>=0?(e=(e??=0)<0?Math.max(t.length+e,0):Math.min(e,t.length),n=(n??=t.length)<0?Math.max(t.length+n,0):Math.min(n,t.length)):(e=(e??=t.length-1)<0?Math.max(t.length+e,-1):Math.min(e,t.length-1),n=(n??=-1)<-1?Math.max(t.length+n,-1):Math.min(n,t.length-1));const s=[];for(let o=e;i*o<i*n;o+=r)s.push(t[o]);return s}function Xt(t){return t.replace(/\b\w/g,(t=>t.toUpperCase()))}var Yt=class{type="RuntimeValue";value;builtins=new Map;constructor(t=void 0){this.value=t}__bool__(){return new Jt(!!this.value)}},Kt=class extends Yt{type="NumericValue"},Zt=class extends Yt{type="StringValue";builtins=new Map([["upper",new ne((()=>new Zt(this.value.toUpperCase())))],["lower",new ne((()=>new Zt(this.value.toLowerCase())))],["strip",new ne((()=>new Zt(this.value.trim())))],["title",new ne((()=>new Zt(Xt(this.value))))],["length",new Kt(this.value.length)]])},Jt=class extends Yt{type="BooleanValue"},Qt=class extends Yt{type="ObjectValue";__bool__(){return new Jt(this.value.size>0)}builtins=new Map([["get",new ne((([t,e])=>{if(!(t instanceof Zt))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??e??new re}))],["items",new ne((()=>new te(Array.from(this.value.entries()).map((([t,e])=>new te([new Zt(t),e]))))))]])},te=class extends Yt{type="ArrayValue";builtins=new Map([["length",new Kt(this.value.length)]]);__bool__(){return new Jt(this.value.length>0)}},ee=class extends te{type="TupleValue"},ne=class extends Yt{type="FunctionValue"},re=class extends Yt{type="NullValue"},ie=class extends Yt{type="UndefinedValue"},se=class{constructor(t){this.parent=t}variables=new Map([["namespace",new ne((t=>{if(0===t.length)return new Qt(new Map);if(1!==t.length||!(t[0]instanceof Qt))throw new Error("`namespace` expects either zero arguments or a single object argument");return t[0]}))]]);tests=new Map([["boolean",t=>"BooleanValue"===t.type],["callable",t=>t instanceof ne],["odd",t=>{if("NumericValue"!==t.type)throw new Error(`Cannot apply test "odd" to type: ${t.type}`);return t.value%2!=0}],["even",t=>{if("NumericValue"!==t.type)throw new Error(`Cannot apply test "even" to type: ${t.type}`);return t.value%2==0}],["false",t=>"BooleanValue"===t.type&&!t.value],["true",t=>"BooleanValue"===t.type&&t.value],["number",t=>"NumericValue"===t.type],["integer",t=>"NumericValue"===t.type&&Number.isInteger(t.value)],["iterable",t=>t instanceof te||t instanceof Zt],["lower",t=>{const e=t.value;return"StringValue"===t.type&&e===e.toLowerCase()}],["upper",t=>{const e=t.value;return"StringValue"===t.type&&e===e.toUpperCase()}],["none",t=>"NullValue"===t.type],["defined",t=>"UndefinedValue"!==t.type],["undefined",t=>"UndefinedValue"===t.type],["equalto",(t,e)=>t.value===e.value]]);set(t,e){return this.declareVariable(t,ae(e))}declareVariable(t,e){if(this.variables.has(t))throw new SyntaxError(`Variable already declared: ${t}`);return this.variables.set(t,e),e}setVariable(t,e){return this.variables.set(t,e),e}resolve(t){if(this.variables.has(t))return this;if(this.parent)return this.parent.resolve(t);throw new Error(`Unknown variable: ${t}`)}lookupVariable(t){try{return this.resolve(t).variables.get(t)??new ie}catch{return new ie}}},oe=class{global;constructor(t){this.global=t??new se}run(t){return this.evaluate(t,this.global)}evaluateBinaryExpression(t,e){const n=this.evaluate(t.left,e);switch(t.operator.value){case"and":return n.__bool__().value?this.evaluate(t.right,e):n;case"or":return n.__bool__().value?n:this.evaluate(t.right,e)}const r=this.evaluate(t.right,e);switch(t.operator.value){case"==":return new Jt(n.value==r.value);case"!=":return new Jt(n.value!=r.value)}if(n instanceof ie||r instanceof ie)throw new Error("Cannot perform operation on undefined values");if(n instanceof re||r instanceof re)throw new Error("Cannot perform operation on null values");if(n instanceof Kt&&r instanceof Kt)switch(t.operator.value){case"+":return new Kt(n.value+r.value);case"-":return new Kt(n.value-r.value);case"*":return new Kt(n.value*r.value);case"/":return new Kt(n.value/r.value);case"%":return new Kt(n.value%r.value);case"<":return new Jt(n.value<r.value);case">":return new Jt(n.value>r.value);case">=":return new Jt(n.value>=r.value);case"<=":return new Jt(n.value<=r.value)}else if(n instanceof te&&r instanceof te){if("+"===t.operator.value)return new te(n.value.concat(r.value))}else if(r instanceof te){const e=void 0!==r.value.find((t=>t.value===n.value));switch(t.operator.value){case"in":return new Jt(e);case"not in":return new Jt(!e)}}if((n instanceof Zt||r instanceof Zt)&&"+"===t.operator.value)return new Zt(n.value.toString()+r.value.toString());if(n instanceof Zt&&r instanceof Zt)switch(t.operator.value){case"in":return new Jt(r.value.includes(n.value));case"not in":return new Jt(!r.value.includes(n.value))}if(n instanceof Zt&&r instanceof Qt)switch(t.operator.value){case"in":return new Jt(r.value.has(n.value));case"not in":return new Jt(!r.value.has(n.value))}throw new SyntaxError(`Unknown operator "${t.operator.value}" between ${n.type} and ${r.type}`)}evaluateFilterExpression(t,e){const n=this.evaluate(t.operand,e);if("Identifier"===t.filter.type){const e=t.filter;if(n instanceof te)switch(e.value){case"list":return n;case"first":return n.value[0];case"last":return n.value[n.value.length-1];case"length":return new Kt(n.value.length);case"reverse":return new te(n.value.reverse());case"sort":return new te(n.value.sort(((t,e)=>{if(t.type!==e.type)throw new Error(`Cannot compare different types: ${t.type} and ${e.type}`);switch(t.type){case"NumericValue":return t.value-e.value;case"StringValue":return t.value.localeCompare(e.value);default:throw new Error(`Cannot compare type: ${t.type}`)}})));default:throw new Error(`Unknown ArrayValue filter: ${e.value}`)}else if(n instanceof Zt)switch(e.value){case"length":return new Kt(n.value.length);case"upper":return new Zt(n.value.toUpperCase());case"lower":return new Zt(n.value.toLowerCase());case"title":return new Zt(Xt(n.value));case"capitalize":return new Zt(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new Zt(n.value.trim());default:throw new Error(`Unknown StringValue filter: ${e.value}`)}else{if(n instanceof Kt){if("abs"===e.value)return new Kt(Math.abs(n.value));throw new Error(`Unknown NumericValue filter: ${e.value}`)}if(n instanceof Qt)switch(e.value){case"items":return new te(Array.from(n.value.entries()).map((([t,e])=>new te([new Zt(t),e]))));case"length":return new Kt(n.value.size);default:throw new Error(`Unknown ObjectValue filter: ${e.value}`)}}throw new Error(`Cannot apply filter "${e.value}" to type: ${n.type}`)}if("CallExpression"===t.filter.type){const r=t.filter;if("Identifier"!==r.callee.type)throw new Error(`Unknown filter: ${r.callee.type}`);const i=r.callee.value;if(n instanceof te){if("selectattr"===i){if(n.value.some((t=>!(t instanceof Qt))))throw new Error("`selectattr` can only be applied to array of objects");if(r.args.some((t=>"StringLiteral"!==t.type)))throw new Error("arguments of `selectattr` must be strings");const[t,i,s]=r.args.map((t=>this.evaluate(t,e)));let o;if(i){const t=e.tests.get(i.value);if(!t)throw new Error(`Unknown test: ${i.value}`);o=t}else o=(...t)=>t[0].__bool__().value;const a=n.value.filter((e=>{const n=e.value.get(t.value);return!!n&&o(n,s)}));return new te(a)}throw new Error(`Unknown ArrayValue filter: ${i}`)}throw new Error(`Cannot apply filter "${i}" to type: ${n.type}`)}throw new Error(`Unknown filter: ${t.filter.type}`)}evaluateTestExpression(t,e){const n=this.evaluate(t.operand,e),r=e.tests.get(t.test.value);if(!r)throw new Error(`Unknown test: ${t.test.value}`);const i=r(n);return new Jt(t.negate?!i:i)}evaluateUnaryExpression(t,e){const n=this.evaluate(t.argument,e);if("not"===t.operator.value)return new Jt(!n.value);throw new SyntaxError(`Unknown operator: ${t.operator.value}`)}evalProgram(t,e){return this.evaluateBlock(t.body,e)}evaluateBlock(t,e){let n="";for(const r of t){const t=this.evaluate(r,e);"NullValue"!==t.type&&"UndefinedValue"!==t.type&&(n+=t.value)}return new Zt(n)}evaluateIdentifier(t,e){return e.lookupVariable(t.value)}evaluateCallExpression(t,e){const n=[],r=new Map;for(const i of t.args)if("KeywordArgumentExpression"===i.type){const t=i;r.set(t.key.value,this.evaluate(t.value,e))}else n.push(this.evaluate(i,e));r.size>0&&n.push(new Qt(r));const i=this.evaluate(t.callee,e);if("FunctionValue"!==i.type)throw new Error(`Cannot call something that is not a function: got ${i.type}`);return i.value(n,e)}evaluateSliceExpression(t,e,n){if(!(t instanceof te||t instanceof Zt))throw new Error("Slice object must be an array or string");const r=this.evaluate(e.start,n),i=this.evaluate(e.stop,n),s=this.evaluate(e.step,n);if(!(r instanceof Kt||r instanceof ie))throw new Error("Slice start must be numeric or undefined");if(!(i instanceof Kt||i instanceof ie))throw new Error("Slice stop must be numeric or undefined");if(!(s instanceof Kt||s instanceof ie))throw new Error("Slice step must be numeric or undefined");return t instanceof te?new te(Ht(t.value,r.value,i.value,s.value)):new Zt(Ht(Array.from(t.value),r.value,i.value,s.value).join(""))}evaluateMemberExpression(t,e){const n=this.evaluate(t.object,e);let r,i;if(t.computed){if("SliceExpression"===t.property.type)return this.evaluateSliceExpression(n,t.property,e);r=this.evaluate(t.property,e)}else r=new Zt(t.property.value);if(n instanceof Qt){if(!(r instanceof Zt))throw new Error(`Cannot access property with non-string: got ${r.type}`);i=n.value.get(r.value)??n.builtins.get(r.value)}else if(n instanceof te||n instanceof Zt)if(r instanceof Kt)i=n.value.at(r.value),n instanceof Zt&&(i=new Zt(n.value.at(r.value)));else{if(!(r instanceof Zt))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);i=n.builtins.get(r.value)}else{if(!(r instanceof Zt))throw new Error(`Cannot access property with non-string: got ${r.type}`);i=n.builtins.get(r.value)}return i instanceof Yt?i:new ie}evaluateSet(t,e){const n=this.evaluate(t.value,e);if("Identifier"===t.assignee.type){const r=t.assignee.value;e.setVariable(r,n)}else{if("MemberExpression"!==t.assignee.type)throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(t.assignee)}`);{const r=t.assignee,i=this.evaluate(r.object,e);if(!(i instanceof Qt))throw new Error("Cannot assign to member of non-object");if("Identifier"!==r.property.type)throw new Error("Cannot assign to member with non-identifier property");i.value.set(r.property.value,n)}}return new re}evaluateIf(t,e){const n=this.evaluate(t.test,e);return this.evaluateBlock(n.__bool__().value?t.body:t.alternate,e)}evaluateFor(t,e){const n=new se(e),r=this.evaluate(t.iterable,n);if(!(r instanceof te))throw new Error(`Expected iterable type in for loop: got ${r.type}`);let i="";for(let e=0;e<r.value.length;++e){const s=new Map([["index",new Kt(e+1)],["index0",new Kt(e)],["revindex",new Kt(r.value.length-e)],["revindex0",new Kt(r.value.length-e-1)],["first",new Jt(0===e)],["last",new Jt(e===r.value.length-1)],["length",new Kt(r.value.length)],["previtem",e>0?r.value[e-1]:new ie],["nextitem",e<r.value.length-1?r.value[e+1]:new ie]]);n.setVariable("loop",new Qt(s));const o=r.value[e];if("Identifier"===t.loopvar.type)n.setVariable(t.loopvar.value,o);else if("TupleLiteral"===t.loopvar.type){const e=t.loopvar;if("ArrayValue"!==o.type)throw new Error(`Cannot unpack non-iterable type: ${o.type}`);const r=o;if(e.value.length!==r.value.length)throw new Error(`Too ${e.value.length>r.value.length?"few":"many"} items to unpack`);for(let t=0;t<e.value.length;++t){if("Identifier"!==e.value[t].type)throw new Error(`Cannot unpack non-identifier type: ${e.value[t].type}`);n.setVariable(e.value[t].value,r.value[t])}}i+=this.evaluateBlock(t.body,n).value}return new Zt(i)}evaluate(t,e){if(void 0===t)return new ie;switch(t.type){case"Program":return this.evalProgram(t,e);case"Set":return this.evaluateSet(t,e);case"If":return this.evaluateIf(t,e);case"For":return this.evaluateFor(t,e);case"NumericLiteral":return new Kt(Number(t.value));case"StringLiteral":return new Zt(t.value);case"BooleanLiteral":return new Jt(t.value);case"ArrayLiteral":return new te(t.value.map((t=>this.evaluate(t,e))));case"TupleLiteral":return new ee(t.value.map((t=>this.evaluate(t,e))));case"ObjectLiteral":{const n=new Map;for(const[r,i]of t.value){const t=this.evaluate(r,e);if(!(t instanceof Zt))throw new Error(`Object keys must be strings: got ${t.type}`);n.set(t.value,this.evaluate(i,e))}return new Qt(n)}case"Identifier":return this.evaluateIdentifier(t,e);case"CallExpression":return this.evaluateCallExpression(t,e);case"MemberExpression":return this.evaluateMemberExpression(t,e);case"UnaryExpression":return this.evaluateUnaryExpression(t,e);case"BinaryExpression":return this.evaluateBinaryExpression(t,e);case"FilterExpression":return this.evaluateFilterExpression(t,e);case"TestExpression":return this.evaluateTestExpression(t,e);default:throw new SyntaxError(`Unknown node type: ${t.type}`)}}};function ae(t){switch(typeof t){case"number":return new Kt(t);case"string":return new Zt(t);case"boolean":return new Jt(t);case"object":return null===t?new re:Array.isArray(t)?new te(t.map(ae)):new Qt(new Map(Object.entries(t).map((([t,e])=>[t,ae(e)]))));case"function":return new ne(((e,n)=>ae(t(...e.map((t=>t.value)))??null)));default:throw new Error(`Cannot convert to runtime value: ${t}`)}}var ue=class{parsed;constructor(t){const e=function(t,e={}){const n=[],r=function(t,e={}){return t.endsWith("\n")&&(t=t.slice(0,-1)),t=t.replace(/{#.*?#}/gs,"{##}"),e.lstrip_blocks&&(t=t.replace(/^[ \t]*({[#%])/gm,"$1")),e.trim_blocks&&(t=t.replace(/([#%]})\n/g,"$1")),t.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}(t,e);let i=0;const s=t=>{let e="";for(;t(r[i]);)if("\\"!==r[i]){if(e+=r[i++],i>=r.length)throw new SyntaxError("Unexpected end of input")}else{if(++i,i>=r.length)throw new SyntaxError("Unexpected end of input");const t=r[i++],n=xt.get(t);if(void 0===n)throw new SyntaxError(`Unexpected escaped character: ${t}`);e+=n}return e};t:for(;i<r.length;){const t=n.at(-1)?.type;if(void 0===t||t===mt.CloseStatement||t===mt.CloseExpression){let t="";for(;i<r.length&&("{"!==r[i]||"%"!==r[i+1]&&"{"!==r[i+1]);)t+=r[i++];if(t.length>0){n.push(new bt(t,mt.Text));continue}}s((t=>/\s/.test(t)));const e=r[i];if("-"===e||"+"===e){const t=n.at(-1)?.type;if(t===mt.Text||void 0===t)throw new SyntaxError(`Unexpected character: ${e}`);switch(t){case mt.Identifier:case mt.NumericLiteral:case mt.BooleanLiteral:case mt.StringLiteral:case mt.CloseParen:case mt.CloseSquareBracket:break;default:{++i;const t=s(wt);n.push(new bt(`${e}${t}`,t.length>0?mt.NumericLiteral:mt.UnaryOperator));continue}}}for(const[t,e]of vt)if(r.slice(i,i+t.length)===t){n.push(new bt(t,e)),i+=t.length;continue t}if("'"!==e&&'"'!==e)if(wt(e)){const t=s(wt);n.push(new bt(t,mt.NumericLiteral))}else{if(!yt(e))throw new SyntaxError(`Unexpected character: ${e}`);{const t=s(yt),e=Object.hasOwn(_t,t)?_t[t]:mt.Identifier;e===mt.In&&n.at(-1)?.type===mt.Not?(n.pop(),n.push(new bt("not in",mt.NotIn))):n.push(new bt(t,e))}}else{++i;const t=s((t=>t!==e));n.push(new bt(t,mt.StringLiteral)),++i}}return n}(t,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=qt(e)}render(t){const e=new se;e.set("false",!1),e.set("true",!0),e.set("raise_exception",(t=>{throw new Error(t)})),e.set("range",Wt);for(const[n,r]of Object.entries(t))e.set(n,r);return new oe(e).run(this.parsed).value}};async function le(t,e){const n=await Promise.all([U(t,"tokenizer.json",!0,e),U(t,"tokenizer_config.json",!0,e)]);return null!==e.legacy&&(n[1].legacy=e.legacy),n}function ce(t,e=!0){if(void 0!==t.Regex){let e=t.Regex.replace(/\\([#&~])/g,"$1");for(const[t,n]of me)e=e.replaceAll(t,n);return new RegExp(e,"gu")}if(void 0!==t.String){const n=i(t.String);return new RegExp(e?n:`(${n})`,"gu")}return console.warn("Unknown pattern type:",t),null}function de(t){return new Map(Object.entries(t))}function he(t){const e=t.dims;switch(e.length){case 1:return t.tolist();case 2:if(1!==e[0])throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return t.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${e.length}.`)}}function pe(t){return t.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function fe(t){return t.replace(/[\u0300-\u036f]/g,"")}const ge="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",me=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"]]);class _e{constructor(t){this.content=t.content,this.id=t.id,this.single_word=t.single_word??!1,this.lstrip=t.lstrip??!1,this.rstrip=t.rstrip??!1,this.special=t.special??!1,this.normalized=t.normalized??null}}class be extends s{constructor(t){super(),this.config=t,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(t,...e){switch(t.type){case"WordPiece":return new ye(t);case"Unigram":return new we(t,...e);case"BPE":return new Se(t);default:if(t.vocab)return new Ae(t,...e);throw new Error(`Unknown TokenizerModel type: ${t.type}`)}}_call(t){let e=this.encode(t);return this.fuse_unk&&(e=function(t,e,n){const r=[];let i=0;for(;i<t.length;)if(r.push(t[i]),(n.get(t[i])??e)===e)for(;i<t.length&&(n.get(t[i])??e)===e;)++i;else++i;return r}(e,this.unk_token_id,this.tokens_to_ids)),e}encode(t){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(t){return t.map((t=>this.tokens_to_ids.get(t)??this.unk_token_id))}convert_ids_to_tokens(t){return t.map((t=>this.vocab[t]??this.unk_token))}}class ye extends be{constructor(t){super(t),this.tokens_to_ids=de(t.vocab),this.unk_token_id=this.tokens_to_ids.get(t.unk_token),this.unk_token=t.unk_token,this.max_input_chars_per_word=t.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[t,e]of this.tokens_to_ids)this.vocab[e]=t}encode(t){const e=[];for(const n of t){const t=[...n];if(t.length>this.max_input_chars_per_word){e.push(this.unk_token);continue}let r=!1,i=0;const s=[];for(;i<t.length;){let e=t.length,n=null;for(;i<e;){let r=t.slice(i,e).join("");if(i>0&&(r=this.config.continuing_subword_prefix+r),this.tokens_to_ids.has(r)){n=r;break}--e}if(null===n){r=!0;break}s.push(n),i=e}r?e.push(this.unk_token):e.push(...s)}return e}}class we extends be{constructor(t,e){super(t);const n=t.vocab.length;this.vocab=new Array(n),this.scores=new Array(n);for(let e=0;e<n;++e){const n=t.vocab[e];this.vocab[e]=n[0],this.scores[e]=n[1]}this.unk_token_id=t.unk_id,this.unk_token=this.vocab[t.unk_id],this.tokens_to_ids=new Map(this.vocab.map(((t,e)=>[t,e]))),this.bosToken=" ",this.bosTokenId=this.tokens_to_ids.get(this.bosToken),this.eosToken=e.eos_token,this.eosTokenId=this.tokens_to_ids.get(this.eosToken),this.unkToken=this.vocab[this.unk_token_id],this.minScore=W(this.scores)[0],this.unkScore=this.minScore-10,this.scores[this.unk_token_id]=this.unkScore,this.trie=new ht,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(t){const e=t.sentence,n=e.length;let r=0;for(;r<n;){const n=1;let i=!1;const s=[];for(let o of this.trie.commonPrefixSearch(e.slice(r))){s.push(o);const e=this.tokens_to_ids.get(o),a=this.scores[e],u=o.length;t.insert(r,u,a,e),i||u!==n||(i=!0)}i||t.insert(r,n,this.unkScore,this.unk_token_id),r+=n}}tokenize(t){const e=new ft(t,this.bosTokenId,this.eosTokenId);return this.populateNodes(e),e.tokens()}encode(t){const e=[];for(const n of t){const t=this.tokenize(n);e.push(...t)}return e}}const ve=(()=>{const t=[...Array.from({length:"~".charCodeAt(0)-"!".charCodeAt(0)+1},((t,e)=>e+"!".charCodeAt(0))),...Array.from({length:"¬".charCodeAt(0)-"¡".charCodeAt(0)+1},((t,e)=>e+"¡".charCodeAt(0))),...Array.from({length:"ÿ".charCodeAt(0)-"®".charCodeAt(0)+1},((t,e)=>e+"®".charCodeAt(0)))],e=t.slice();let n=0;for(let r=0;r<256;++r)t.includes(r)||(t.push(r),e.push(256+n),n+=1);const r=e.map((t=>String.fromCharCode(t)));return Object.fromEntries(t.map(((t,e)=>[t,r[e]])))})(),xe=(Te=ve,Object.fromEntries(Object.entries(Te).map((([t,e])=>[e,t]))));var Te;class Se extends be{constructor(t){super(t),this.BPE_SPLIT_TOKEN=" ",this.tokens_to_ids=de(t.vocab),this.unk_token_id=this.tokens_to_ids.get(t.unk_token),this.unk_token=t.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[t,e]of this.tokens_to_ids)this.vocab[e]=t;this.bpe_ranks=new Map(t.merges.map(((t,e)=>[t,e]))),this.merges=t.merges.map((t=>t.split(this.BPE_SPLIT_TOKEN))),this.end_of_word_suffix=t.end_of_word_suffix,this.continuing_subword_suffix=t.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.cache=new Map}bpe(t){if(0===t.length)return[];const e=this.cache.get(t);if(void 0!==e)return e;const n=Array.from(t);this.end_of_word_suffix&&(n[n.length-1]+=this.end_of_word_suffix);let r=[];if(n.length>1){const t=new dt(((t,e)=>t.score<e.score));let e={token:n[0],bias:0,prev:null,next:null},i=e;for(let e=1;e<n.length;++e){const r={bias:e/n.length,token:n[e],prev:i,next:null};i.next=r,this._add_node(t,i),i=r}for(;!t.isEmpty();){const n=t.pop();if(n.deleted||!n.next||n.next.deleted)continue;if(n.deleted=!0,n.next.deleted=!0,n.prev){const t={...n.prev};n.prev.deleted=!0,n.prev=t,t.prev?t.prev.next=t:e=t}const r={token:n.token+n.next.token,bias:n.bias,prev:n.prev,next:n.next.next};r.prev?(r.prev.next=r,this._add_node(t,r.prev)):e=r,r.next&&(r.next.prev=r,this._add_node(t,r))}for(let t=e;null!==t;t=t.next)r.push(t.token)}else r=n;if(this.continuing_subword_suffix)for(let t=0;t<r.length-1;++t)r[t]+=this.continuing_subword_suffix;return this.cache.set(t,r),r}_add_node(t,e){const n=this.bpe_ranks.get(e.token+this.BPE_SPLIT_TOKEN+e.next.token);void 0!==n&&(e.score=n+e.bias,t.push(e))}encode(t){const e=[];for(const n of t){const t=this.bpe(n);for(const n of t)this.tokens_to_ids.has(n)?e.push(n):this.byte_fallback?e.push(...Array.from(this.text_encoder.encode(n)).map((t=>`<0x${t.toString(16).toUpperCase().padStart(2,"0")}>`))):e.push(this.unk_token)}return e}}class Ae extends be{constructor(t,e){super(t),this.tokens_to_ids=de(e.target_lang?t.vocab[e.target_lang]:t.vocab),this.bos_token=e.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=e.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=e.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=e.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(const[t,e]of this.tokens_to_ids)this.vocab[e]=t}encode(t){return t}}class ke extends s{constructor(t){super(),this.config=t}static fromConfig(t){if(null===t)return null;switch(t.type){case"BertNormalizer":return new Le(t);case"Precompiled":return new un(t);case"Sequence":return new Fe(t);case"Replace":return new Oe(t);case"NFC":return new Ee(t);case"NFKC":return new Ie(t);case"NFKD":return new Pe(t);case"Strip":return new De(t);case"StripAccents":return new Ce(t);case"Lowercase":return new $e(t);case"Prepend":return new Me(t);default:throw new Error(`Unknown Normalizer type: ${t.type}`)}}normalize(t){throw Error("normalize should be implemented in subclass.")}_call(t){return this.normalize(t)}}class Oe extends ke{normalize(t){const e=ce(this.config.pattern);return null===e?t:t.replaceAll(e,this.config.content)}}class Ee extends ke{normalize(t){return t.normalize("NFC")}}class Ie extends ke{normalize(t){return t.normalize("NFKC")}}class Pe extends ke{normalize(t){return t.normalize("NFKD")}}class De extends ke{normalize(t){return this.config.strip_left&&this.config.strip_right?t=t.trim():(this.config.strip_left&&(t=t.trimStart()),this.config.strip_right&&(t=t.trimEnd())),t}}class Ce extends ke{normalize(t){return fe(t)}}class $e extends ke{normalize(t){return t.toLowerCase()}}class Me extends ke{normalize(t){return this.config.prepend+t}}class Fe extends ke{constructor(t){super(t),this.normalizers=t.normalizers.map((t=>ke.fromConfig(t)))}normalize(t){return this.normalizers.reduce(((t,e)=>e.normalize(t)),t)}}class Le extends ke{_tokenize_chinese_chars(t){const e=[];for(let n=0;n<t.length;++n){const r=t[n],i=r.charCodeAt(0);this._is_chinese_char(i)?(e.push(" "),e.push(r),e.push(" ")):e.push(r)}return e.join("")}_is_chinese_char(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=63744&&t<=64255||t>=194560&&t<=195103}stripAccents(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}_is_control(t){switch(t){case"\t":case"\n":case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(t)}}_clean_text(t){const e=[];for(const n of t){const t=n.charCodeAt(0);0===t||65533===t||this._is_control(n)||(/^\s$/.test(n)?e.push(" "):e.push(n))}return e.join("")}normalize(t){return this.config.clean_text&&(t=this._clean_text(t)),this.config.handle_chinese_chars&&(t=this._tokenize_chinese_chars(t)),this.config.lowercase?(t=t.toLowerCase(),!1!==this.config.strip_accents&&(t=this.stripAccents(t))):this.config.strip_accents&&(t=this.stripAccents(t)),t}}class Ne extends s{static fromConfig(t){if(null===t)return null;switch(t.type){case"BertPreTokenizer":return new Re(t);case"Sequence":return new ln(t);case"Whitespace":return new cn(t);case"WhitespaceSplit":return new dn(t);case"Metaspace":return new on(t);case"ByteLevel":return new je(t);case"Split":return new ze(t);case"Punctuation":return new Be(t);case"Digits":return new Ue(t);case"Replace":return new hn(t);default:throw new Error(`Unknown PreTokenizer type: ${t.type}`)}}pre_tokenize_text(t,e){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(t,e){return(Array.isArray(t)?t.map((t=>this.pre_tokenize_text(t,e))):this.pre_tokenize_text(t,e)).flat()}_call(t,e){return this.pre_tokenize(t,e)}}class Re extends Ne{constructor(t){super(),this.pattern=new RegExp(`[^\\s${ge}]+|[${ge}]`,"gu")}pre_tokenize_text(t,e){return t.trim().match(this.pattern)||[]}}class je extends Ne{constructor(t){super(),this.config=t,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=ve,this.text_encoder=new TextEncoder}pre_tokenize_text(t,e){return this.add_prefix_space&&!t.startsWith(" ")&&(t=" "+t),(this.use_regex?t.match(this.pattern)||[]:[t]).map((t=>Array.from(this.text_encoder.encode(t),(t=>this.byte_encoder[t])).join("")))}}class ze extends Ne{constructor(t){super(),this.config=t,this.pattern=ce(this.config.pattern,this.config.invert)}pre_tokenize_text(t,e){return null===this.pattern?[]:this.config.invert?t.match(this.pattern)||[]:function(t,e){const n=[];let r=0;for(const i of t.matchAll(e)){const e=i[0];r<i.index&&n.push(t.slice(r,i.index)),e.length>0&&n.push(e),r=i.index+e.length}return r<t.length&&n.push(t.slice(r)),n}(t,this.pattern)}}class Be extends Ne{constructor(t){super(),this.config=t,this.pattern=new RegExp(`[^${ge}]+|[${ge}]+`,"gu")}pre_tokenize_text(t,e){return t.match(this.pattern)||[]}}class Ue extends Ne{constructor(t){super(),this.config=t;const e="[^\\d]+|\\d"+(this.config.individual_digits?"":"+");this.pattern=new RegExp(e,"gu")}pre_tokenize_text(t,e){return t.match(this.pattern)||[]}}class Ve extends s{constructor(t){super(),this.config=t}static fromConfig(t){if(null===t)return null;switch(t.type){case"TemplateProcessing":return new We(t);case"ByteLevel":return new He(t);case"RobertaProcessing":return new qe(t);case"BertProcessing":return new Ge(t);default:throw new Error(`Unknown PostProcessor type: ${t.type}`)}}post_process(t,...e){throw Error("post_process should be implemented in subclass.")}_call(t,...e){return this.post_process(t,...e)}}class Ge extends Ve{constructor(t){super(t),this.cls=t.cls[0],this.sep=t.sep[0]}post_process(t,e=null,{add_special_tokens:n=!0}={}){n&&(t=l([this.cls],t,[this.sep]));let r=new Array(t.length).fill(0);if(null!==e){const i=n&&this instanceof qe?[this.sep]:[],s=n?[this.sep]:[];t=l(t,i,e,s),r=l(r,new Array(e.length+i.length+s.length).fill(1))}return{tokens:t,token_type_ids:r}}}class qe extends Ge{}class We extends Ve{constructor(t){super(t),this.single=t.single,this.pair=t.pair}post_process(t,e=null,{add_special_tokens:n=!0}={}){const r=null===e?this.single:this.pair;let i=[],s=[];for(const o of r)"SpecialToken"in o?n&&(i.push(o.SpecialToken.id),s.push(o.SpecialToken.type_id)):"Sequence"in o&&("A"===o.Sequence.id?(i=l(i,t),s=l(s,new Array(t.length).fill(o.Sequence.type_id))):"B"===o.Sequence.id&&(i=l(i,e),s=l(s,new Array(e.length).fill(o.Sequence.type_id))));return{tokens:i,token_type_ids:s}}}class He extends Ve{post_process(t,e=null){return e&&(t=l(t,e)),{tokens:t}}}class Xe extends s{constructor(t){super(),this.config=t,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=t.trim_offsets}static fromConfig(t){if(null===t)return null;switch(t.type){case"WordPiece":return new Qe(t);case"Metaspace":return new an(t);case"ByteLevel":return new tn(t);case"Replace":return new Ye(t);case"ByteFallback":return new Ke(t);case"Fuse":return new Ze(t);case"Strip":return new Je(t);case"Sequence":return new nn(t);case"CTC":return new en(t);case"BPEDecoder":return new rn(t);default:throw new Error(`Unknown Decoder type: ${t.type}`)}}_call(t){return this.decode(t)}decode(t){return this.decode_chain(t).join("")}decode_chain(t){throw Error("`decode_chain` should be implemented in subclass.")}}class Ye extends Xe{decode_chain(t){const e=ce(this.config.pattern);return null===e?t:t.map((t=>t.replaceAll(e,this.config.content)))}}class Ke extends Xe{constructor(t){super(t),this.text_decoder=new TextDecoder}decode_chain(t){const e=[];let n=[];for(const r of t){let t=null;if(6===r.length&&r.startsWith("<0x")&&r.endsWith(">")){const e=parseInt(r.slice(3,5),16);isNaN(e)||(t=e)}if(null!==t)n.push(t);else{if(n.length>0){const t=this.text_decoder.decode(Uint8Array.from(n));e.push(t),n=[]}e.push(r)}}if(n.length>0){const t=this.text_decoder.decode(Uint8Array.from(n));e.push(t),n=[]}return e}}class Ze extends Xe{decode_chain(t){return[t.join("")]}}class Je extends Xe{constructor(t){super(t),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(t){return t.map((t=>{let e=0;for(let n=0;n<this.start&&t[n]===this.content;++n)e=n+1;let n=t.length;for(let e=0;e<this.stop;++e){const r=t.length-e-1;if(t[r]!==this.content)break;n=r}return t.slice(e,n)}))}}class Qe extends Xe{constructor(t){super(t),this.cleanup=t.cleanup}decode_chain(t){return t.map(((t,e)=>(0!==e&&(t=t.startsWith(this.config.prefix)?t.replace(this.config.prefix,""):" "+t),this.cleanup&&(t=pe(t)),t)))}}class tn extends Xe{constructor(t){super(t),this.byte_decoder=xe,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(t){const e=t.join(""),n=new Uint8Array([...e].map((t=>this.byte_decoder[t])));return this.text_decoder.decode(n)}decode_chain(t){const e=[];let n=[];for(const r of t)void 0!==this.added_tokens.find((t=>t.content===r))?(n.length>0&&(e.push(this.convert_tokens_to_string(n)),n=[]),e.push(r)):n.push(r);return n.length>0&&e.push(this.convert_tokens_to_string(n)),e}}class en extends Xe{constructor(t){super(t),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(t){if(0===t.length)return"";const e=[t[0]];for(let n=1;n<t.length;++n)t[n]!==e.at(-1)&&e.push(t[n]);let n=e.filter((t=>t!==this.pad_token)).join("");return this.cleanup&&(n=pe(n).replaceAll(this.word_delimiter_token," ").trim()),n}decode_chain(t){return[this.convert_tokens_to_string(t)]}}class nn extends Xe{constructor(t){super(t),this.decoders=t.decoders.map((t=>Xe.fromConfig(t)))}decode_chain(t){return this.decoders.reduce(((t,e)=>e.decode_chain(t)),t)}}class rn extends Xe{constructor(t){super(t),this.suffix=this.config.suffix}decode_chain(t){return t.map(((e,n)=>e.replaceAll(this.suffix,n===t.length-1?"":" ")))}}class sn extends Xe{decode_chain(t){let e="";for(let n=1;n<t.length;n+=2)e+=t[n];return[e]}}class on extends Ne{constructor(t){super(),this.addPrefixSpace=t.add_prefix_space,this.replacement=t.replacement,this.strRep=t.str_rep||this.replacement,this.prepend_scheme=t.prepend_scheme??"always"}pre_tokenize_text(t,{section_index:e}={}){let n=t.replaceAll(" ",this.strRep);return this.addPrefixSpace&&!n.startsWith(this.replacement)&&("always"===this.prepend_scheme||"first"===this.prepend_scheme&&0===e)&&(n=this.strRep+n),[n]}}class an extends Xe{constructor(t){super(t),this.addPrefixSpace=t.add_prefix_space,this.replacement=t.replacement}decode_chain(t){const e=[];for(let n=0;n<t.length;++n){let r=t[n].replaceAll(this.replacement," ");this.addPrefixSpace&&0==n&&r.startsWith(" ")&&(r=r.substring(1)),e.push(r)}return e}}class un extends ke{constructor(t){super(t),this.charsmap=t.precompiled_charsmap}normalize(t){if((t=(t=t.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,"")).replace(/[\u0009\u000A\u000C\u000D\u1680\u200B\u200C\u200E\u200F\u2028\u2029\u2581\uFEFF\uFFFD]/gm," ")).includes("~")){const e=t.split("~");t=e.map((t=>t.normalize("NFKC"))).join("~")}else t=t.normalize("NFKC");return t}}class ln extends Ne{constructor(t){super(),this.tokenizers=t.pretokenizers.map((t=>Ne.fromConfig(t)))}pre_tokenize_text(t,e){return this.tokenizers.reduce(((t,n)=>n.pre_tokenize(t,e)),[t])}}class cn extends Ne{constructor(t){super()}pre_tokenize_text(t,e){return t.match(/\w+|[^\w\s]+/g)||[]}}class dn extends Ne{constructor(t){super()}pre_tokenize_text(t,e){return function(t){return t.match(/\S+/g)||[]}(t)}}class hn extends Ne{constructor(t){super(),this.config=t,this.pattern=ce(this.config.pattern),this.content=this.config.content}pre_tokenize_text(t,e){return null===this.pattern?[t]:[t.replaceAll(this.pattern,this.config.content)]}}const pn=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function fn(t,e,n,r){for(const i of Object.keys(t)){const s=e-t[i].length,o=n(i),a=new Array(s).fill(o);t[i]="right"===r?l(t[i],a):l(a,t[i])}}function gn(t,e){for(const n of Object.keys(t))t[n].length=e}class mn extends s{return_token_type_ids=!1;_default_chat_template="{% for message in messages %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}";constructor(t,e){super(),this._tokenizer_config=e,this.normalizer=ke.fromConfig(t.normalizer),this.pre_tokenizer=Ne.fromConfig(t.pre_tokenizer),this.model=be.fromConfig(t.model,e),this.post_processor=Ve.fromConfig(t.post_processor),this.decoder=Xe.fromConfig(t.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const e of t.added_tokens){const t=new _e(e);this.added_tokens.push(t),this.model.tokens_to_ids.set(t.content,t.id),this.model.vocab[t.id]=t.content,t.special&&(this.special_tokens.push(t.content),this.all_special_ids.push(t.id))}if(this.additional_special_tokens=e.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_regex=this.added_tokens.length>0?new RegExp(this.added_tokens.map((t=>`${t.lstrip?"\\s*":""}(${i(t.content)})${t.rstrip?"\\s*":""}`)).join("|")):null,this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.model_max_length=e.model_max_length,this.remove_space=e.remove_space,this.clean_up_tokenization_spaces=e.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=e.do_lowercase_and_remove_accent??!1,this.padding_side="right",this.legacy=!1,this.chat_template=e.chat_template??null,Array.isArray(this.chat_template)){const t=Object.create(null);for(const{name:e,template:n}of this.chat_template){if("string"!=typeof e||"string"!=typeof n)throw new Error('Chat template must be a list of objects with "name" and "template" properties');t[e]=n}this.chat_template=t}this._compiled_template_cache=new Map}getToken(...t){for(const e of t){const t=this._tokenizer_config[e];if(t){if("object"==typeof t){if("AddedToken"===t.__type)return t.content;throw Error(`Unknown token: ${t}`)}return t}}return null}static async from_pretrained(t,{progress_callback:e=null,config:n=null,cache_dir:r=null,local_files_only:i=!1,revision:s="main",legacy:o=null}={}){return new this(...await le(t,{progress_callback:e,config:n,cache_dir:r,local_files_only:i,revision:s,legacy:o}))}_call(t,{text_pair:e=null,add_special_tokens:n=!0,padding:r=!1,truncation:i=null,max_length:s=null,return_tensor:o=!0}={}){const a=Array.isArray(t);let u;if(a){if(0===t.length)throw Error("text array must be non-empty");if(null!==e){if(!Array.isArray(e))throw Error("text_pair must also be an array");if(t.length!==e.length)throw Error("text and text_pair must have the same length");u=t.map(((t,r)=>this._encode_plus(t,e[r],{add_special_tokens:n})))}else u=t.map((t=>this._encode_plus(t,null,{add_special_tokens:n})))}else{if(null===t)throw Error("text may not be null");if(Array.isArray(e))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");u=[this._encode_plus(t,e,{add_special_tokens:n})]}if(null===s?s="max_length"===r?this.model_max_length:H(u.map((t=>t.input_ids.length)))[0]:i||console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation=true` to explicitly truncate examples to max length."),s=Math.min(s,this.model_max_length),r||i)for(let t=0;t<u.length;++t)u[t].input_ids.length!==s&&(u[t].input_ids.length>s?i&&gn(u[t],s):r&&fn(u[t],s,(t=>"input_ids"===t?this.pad_token_id:0),this.padding_side));const l={};if(o){if((!r||!i)&&u.some((t=>{for(const e of Object.keys(t))if(t[e].length!==u[0][e]?.length)return!0;return!1})))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");const t=[u.length,u[0].input_ids.length];for(const e of Object.keys(u[0]))l[e]=new nt("int64",BigInt64Array.from(u.flatMap((t=>t[e])).map(BigInt)),t)}else{for(const t of Object.keys(u[0]))l[t]=u.map((e=>e[t]));if(!a)for(const t of Object.keys(l))l[t]=l[t][0]}return l}_encode_text(t){if(null===t)return null;const e=(this.added_tokens_regex?t.split(this.added_tokens_regex).filter((t=>t)):[t]).map(((t,e)=>{if(void 0!==this.added_tokens.find((e=>e.content===t)))return t;{if(!0===this.remove_space&&(t=t.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(t=function(t){return fe(t.toLowerCase())}(t)),null!==this.normalizer&&(t=this.normalizer(t)),0===t.length)return[];const n=null!==this.pre_tokenizer?this.pre_tokenizer(t,{section_index:e}):[t];return this.model(n)}})).flat();return e}_encode_plus(t,e=null,{add_special_tokens:n=!0}={}){const r=this._encode_text(t),i=this._encode_text(e),s=this.post_processor?this.post_processor(r,i,{add_special_tokens:n}):{tokens:l(r??[],i??[])},o=this.model.convert_tokens_to_ids(s.tokens),a={input_ids:o,attention_mask:new Array(o.length).fill(1)};return this.return_token_type_ids&&s.token_type_ids&&(a.token_type_ids=s.token_type_ids),a}encode(t,e=null,{add_special_tokens:n=!0}={}){const{input_ids:r}=this._encode_plus(t,e,{add_special_tokens:n});return r}batch_decode(t,e={}){return t instanceof nt&&(t=t.tolist()),t.map((t=>this.decode(t,e)))}decode(t,e={}){if(t instanceof nt&&(t=he(t)),!Array.isArray(t)||0===t.length||!o(t[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(t,e)}decode_single(t,{skip_special_tokens:e=!1,clean_up_tokenization_spaces:n=null}){let r=this.model.convert_ids_to_tokens(t);e&&(r=r.filter((t=>!this.special_tokens.includes(t))));let i=this.decoder?this.decoder(r):r.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(i=i.replaceAll(this.decoder.end_of_word_suffix," "),e&&(i=i.trim())),(n??this.clean_up_tokenization_spaces)&&(i=pe(i)),i}get default_chat_template(){return this._warned_about_chat_template||(console.warn("No chat template is defined for this tokenizer - using a default chat template that implements the ChatML format. If the default is not appropriate for your model, please set `tokenizer.chat_template` to an appropriate template. See https://huggingface.co/docs/transformers/main/chat_templating for more information."),this._warned_about_chat_template=!0),this._default_chat_template}apply_chat_template(t,{chat_template:e=null,add_generation_prompt:n=!1,tokenize:r=!0,padding:i=!1,truncation:s=!1,max_length:o=null,return_tensor:a=!0,tokenizer_kwargs:u={},...l}={}){if(this.chat_template&&"object"==typeof this.chat_template||null===this.chat_template&&this.default_chat_template&&"object"==typeof this.default_chat_template){const t=this.chat_template??this.default_chat_template;if(null!==e&&Object.hasOwn(t,e))e=t[e];else if(null===e&&"default"in t)e=t.default;else if(null===e)throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(t).sort()}.`)}else e??=this.chat_template??this.default_chat_template;if("string"!=typeof e)throw Error("chat_template must be a string, but got "+typeof e);let c=this._compiled_template_cache.get(e);void 0===c&&(c=new ue(e),this._compiled_template_cache.set(e,c));const d=Object.create(null);for(const t of pn){const e=this.getToken(t);e&&(d[t]=e)}const h=c.render({messages:t,add_generation_prompt:n,...d,...l});return r?this._call(h,{add_special_tokens:!1,padding:i,truncation:s,max_length:o,return_tensor:a,...u}).input_ids:h}}class _n extends mn{return_token_type_ids=!0}class bn extends mn{return_token_type_ids=!0}class yn extends mn{return_token_type_ids=!0}class wn extends mn{return_token_type_ids=!0}class vn extends mn{return_token_type_ids=!0}class xn extends mn{return_token_type_ids=!0}class Tn extends mn{return_token_type_ids=!0}class Sn extends mn{return_token_type_ids=!0}class An extends mn{return_token_type_ids=!0}class kn extends mn{}class On extends mn{}class En extends mn{return_token_type_ids=!0;constructor(t,e){super(t,e),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class In extends mn{return_token_type_ids=!0}class Pn extends mn{}class Dn extends mn{_default_chat_template='{% for message in messages %}" "{{ message.content }}{{ eos_token }}" "{% endfor %}'}class Cn extends mn{}class $n extends mn{constructor(t,e){super(t,e),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter((t=>this.languageRegex.test(t))),this.lang_to_token=t=>t}_build_translation_inputs(t,e,n){return Xn(this,t,e,n)}}class Mn extends $n{}class Fn extends mn{}class Ln extends Dn{constructor(t,e){const n=".,!?…。,、।۔،",r=t.pre_tokenizer?.pretokenizers[0]?.pattern;r&&r.Regex===` ?[^(\\s|[${n}])]+`&&(r.Regex=` ?[^\\s${n}]+`),super(t,e)}}const Nn="▁";class Rn extends mn{_default_chat_template="{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif USE_DEFAULT_PROMPT == true and not '<<SYS>>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'DEFAULT_SYSTEM_MESSAGE' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\n' + system_message + '\n<</SYS>>\n\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ bos_token + '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<<SYS>>\n' + content.strip() + '\n<</SYS>>\n\n' }}{% elif message['role'] == 'assistant' %}{{ ' '  + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}";DEFAULT_SYSTEM_PROMPT="You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.\n\nIf a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.";constructor(t,e){super(t,e),this.use_default_system_prompt=e.use_default_system_prompt??!1,this.legacy=e.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new on({replacement:Nn,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(t){if(null===t)return null;if(this.legacy||0===t.length)return super._encode_text(t);let e=super._encode_text(Nn+t.replaceAll(Nn," "));return e.length>1&&e[0]===Nn&&this.special_tokens.includes(e[1])&&(e=e.slice(1)),e}get default_chat_template(){return super.default_chat_template.replaceAll("USE_DEFAULT_PROMPT",this.use_default_system_prompt?"true":"false").replaceAll("DEFAULT_SYSTEM_MESSAGE",this.DEFAULT_SYSTEM_PROMPT.replaceAll("\n","\\n").replaceAll("'","\\'"))}}class jn extends Rn{}class zn extends mn{}class Bn extends mn{}class Un extends mn{}class Vn extends mn{}class Gn extends mn{}class qn extends mn{}class Wn extends mn{_default_chat_template="{% if messages[0]['role'] == 'system' %}{{ raise_exception('System role not supported') }}{% endif %}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '<start_of_turn>' + role + '\n' + message['content'] | trim + '<end_of_turn>\n' }}{% endfor %}{% if add_generation_prompt %}{{'<start_of_turn>model\n'}}{% endif %}"}class Hn extends mn{}function Xn(t,e,n,r){if(!("language_codes"in t)||!Array.isArray(t.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in t&&t.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in t)||"function"!=typeof t.lang_to_token)throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const i=r.src_lang,s=r.tgt_lang;if(!t.language_codes.includes(s))throw new Error(`Target language code "${s}" is not valid. Must be one of: {${t.language_codes.join(", ")}}`);if(void 0!==i){if(!t.language_codes.includes(i))throw new Error(`Source language code "${i}" is not valid. Must be one of: {${t.language_codes.join(", ")}}`);for(const e of t.post_processor.config.single)if("SpecialToken"in e&&t.languageRegex.test(e.SpecialToken.id)){e.SpecialToken.id=t.lang_to_token(i);break}}return r.forced_bos_token_id=t.model.convert_tokens_to_ids([t.lang_to_token(s)])[0],t._call(e,n)}class Yn extends mn{constructor(t,e){super(t,e),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter((t=>this.languageRegex.test(t))),this.lang_to_token=t=>t}_build_translation_inputs(t,e,n){return Xn(this,t,e,n)}}class Kn extends mn{constructor(t,e){super(t,e),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter((t=>this.languageRegex.test(t))).map((t=>t.slice(2,-2))),this.lang_to_token=t=>`__${t}__`}_build_translation_inputs(t,e,n){return Xn(this,t,e,n)}}const Zn=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],Jn=new Map(Zn),Qn=new Map([...Zn.map((([t,e])=>[e,t])),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);class tr extends mn{_default_chat_template='{% for message in messages %}" "{{ message.content }}{{ eos_token }}" "{% endfor %}';_decode_asr(t,{return_timestamps:e=!1,return_language:n=!1,time_precision:r=null,force_full_sequences:i=!0}={}){if(null===r)throw Error("Must specify time_precision");let s=null;const o="word"===e;function a(){return{language:s,timestamp:[null,null],text:""}}const u=[];let l=a(),c=0;const d=this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1;let h=[],p=[],f=!1,g=null;const m=new Set(this.all_special_ids);for(const n of t){const t=n.tokens,i=o?n.token_timestamps:null;let _=null,b=d;if("stride"in n){const[e,i,s]=n.stride;if(c-=i,g=e-s,i&&(b=i/r+d),s)for(let e=t.length-1;e>=0;--e){const n=t[e];if(n>=d){if(null!==_&&(n-d)*r<g)break;_=n}}}let y=[],w=[];for(let n=0;n<t.length;++n){const g=t[n];if(m.has(g)){const t=this.decode([g]),n=Jn.get(t.slice(2,-2));if(void 0!==n){if(null!==s&&n!==s&&!e){h.push(y);const t=this.findLongestCommonSequence(h)[0],e=this.decode(t);l.text=e,u.push(l),h=[],y=[],l=a()}s=l.language=n}}else if(g>=d){const t=Q((g-d)*r+c,2);if(null!==_&&g>=_)f=!0;else if(f||h.length>0&&g<b)f=!1;else if(null===l.timestamp[0])l.timestamp[0]=t;else if(t===l.timestamp[0]);else{l.timestamp[1]=t,h.push(y),o&&p.push(w);const[e,n]=this.findLongestCommonSequence(h,p),r=this.decode(e);l.text=r,o&&(l.words=this.collateWordTimestamps(e,n,s)),u.push(l),h=[],y=[],p=[],w=[],l=a()}}else if(y.push(g),o){let t,e=Q(i[n]+c,2);t=n+1<i.length?Q(i[n+1]+c,2):null,w.push([e,t])}}if("stride"in n){const[t,e,r]=n.stride;c+=t-r}y.length>0?(h.push(y),o&&p.push(w)):h.every((t=>0===t.length))&&(l=a(),h=[],y=[],p=[],w=[])}if(h.length>0){if(i&&e)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[t,n]=this.findLongestCommonSequence(h,p),r=this.decode(t);l.text=r,o&&(l.words=this.collateWordTimestamps(t,n,s)),u.push(l)}let _=Object.create(null);const b=u.map((t=>t.text)).join("");if(e||n){for(let t=0;t<u.length;++t){const r=u[t];e||delete r.timestamp,n||delete r.language}if(o){const t=[];for(const e of u)for(const n of e.words)t.push(n);_={chunks:t}}else _={chunks:u}}return[b,_]}findLongestCommonSequence(t,e=null){let n=t[0],r=n.length,i=[];const s=Array.isArray(e)&&e.length>0;let o=s?[]:null,a=s?e[0]:null;for(let u=1;u<t.length;++u){const l=t[u];let c=0,d=[r,r,0,0];const h=l.length;for(let t=1;t<r+h;++t){const e=t/1e4,i=Math.max(0,r-t),s=Math.min(r,r+h-t),o=n.slice(i,s),a=Math.max(0,t-r),u=Math.min(h,t),p=l.slice(a,u);if(o.length!==p.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");const f=o.filter(((t,e)=>t===p[e])).length,g=f/t+e;f>1&&g>c&&(c=g,d=[i,s,a,u])}const[p,f,g,m]=d,_=Math.floor((f+p)/2),b=Math.floor((m+g)/2);i.push(...n.slice(0,_)),n=l.slice(b),r=n.length,s&&(o.push(...a.slice(0,_)),a=e[u].slice(b))}return i.push(...n),s?(o.push(...a),[i,o]):[i,[]]}collateWordTimestamps(t,e,n){const[r,i,s]=this.combineTokensIntoWords(t,n),o=[];for(let t=0;t<r.length;++t){const n=s[t];o.push({text:r[t],timestamp:[e[n.at(0)][0],e[n.at(-1)][1]]})}return o}combineTokensIntoWords(t,e,n="\"'“¡¿([{-",r="\"'.。,,!!??::”)]}、"){let i,s,o;return["chinese","japanese","thai","lao","myanmar"].includes(e=e??"english")?[i,s,o]=this.splitTokensOnUnicode(t):[i,s,o]=this.splitTokensOnSpaces(t),this.mergePunctuations(i,s,o,n,r)}decode(t,e){let n;return e&&e.decode_with_timestamps?(t instanceof nt&&(t=he(t)),n=this.decodeWithTimestamps(t,e)):n=super.decode(t,e),n}decodeWithTimestamps(t,e){const n=e?.time_precision??.02,r=Array.from(this.all_special_ids).at(-1)+1;let i=[[]];for(const e of t)if(e>=r){const t=Q((e-r)*n,2);i.push(`<|${t}|>`),i.push([])}else i[i.length-1].push(e);return i=i.map((t=>"string"==typeof t?t:super.decode(t,e))),i.join("")}splitTokensOnUnicode(t){const e=this.decode(t,{decode_with_timestamps:!0}),n=[],r=[],i=[];let s=[],o=[],a=0;for(let u=0;u<t.length;++u){const l=t[u];s.push(l),o.push(u);const c=this.decode(s,{decode_with_timestamps:!0});c.includes("�")&&"�"!==e[a+c.indexOf("�")]||(n.push(c),r.push(s),i.push(o),s=[],o=[],a+=c.length)}return[n,r,i]}splitTokensOnSpaces(t){const[e,n,r]=this.splitTokensOnUnicode(t),i=[],s=[],o=[],a=new RegExp(`^[${ge}]$`,"gu");for(let t=0;t<e.length;++t){const u=e[t],l=n[t],c=r[t],d=l[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),h=u.startsWith(" "),p=u.trim(),f=a.test(p);if(d||h||f||0===i.length)i.push(u),s.push(l),o.push(c);else{const t=i.length-1;i[t]+=u,s[t].push(...l),o[t].push(...c)}}return[i,s,o]}mergePunctuations(t,e,n,r,i){const s=structuredClone(t),o=structuredClone(e),a=structuredClone(n);let u=s.length-2,c=s.length-1;for(;u>=0;)s[u].startsWith(" ")&&r.includes(s[u].trim())?(s[c]=s[u]+s[c],o[c]=l(o[u],o[c]),a[c]=l(a[u],a[c]),s[u]="",o[u]=[],a[u]=[]):c=u,--u;for(u=0,c=1;c<s.length;)!s[u].endsWith(" ")&&i.includes(s[c])?(s[u]+=s[c],o[u]=l(o[u],o[c]),a[u]=l(a[u],a[c]),s[c]="",o[c]=[],a[c]=[]):u=c,++c;return[s.filter((t=>t)),o.filter((t=>t.length>0)),a.filter((t=>t.length>0))]}get_decoder_prompt_ids({language:t=null,task:e=null,no_timestamps:n=!0}={}){const r=[];if(t){t=t.toLowerCase();let e=Qn.get(t);if(void 0===e){if(!Jn.has(t)){const e=2===t.length?Jn.keys():Jn.values();throw new Error(`Language "${t}" is not supported. Must be one of: ${JSON.stringify(e)}`)}e=t}const n=this.model.tokens_to_ids.get(`<|${e}|>`);if(void 0===n)throw new Error(`Unable to find language "${e}" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.`);r.push(n)}else r.push(null);if(e){if("transcribe"!==(e=e.toLowerCase())&&"translate"!==e)throw new Error(`Task "${e}" is not supported. Must be one of: ["transcribe", "translate"]`);const t=this.model.tokens_to_ids.get(`<|${e}|>`);if(void 0===t)throw new Error(`Unable to find task "${e}" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.`);r.push(t)}else r.push(null);if(n){const t=this.model.tokens_to_ids.get("<|notimestamps|>");if(void 0===t)throw new Error('Unable to find "<|notimestamps|>" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.');r.push(t)}return r.map(((t,e)=>[e+1,t])).filter((t=>null!==t[1]))}}class er extends mn{}class nr extends mn{}class rr extends mn{}class ir extends mn{constructor(t,e){super(t,e),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter((t=>this.languageRegex.test(t))),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(t){if(null===t)return null;const[e,...n]=t.trim().split(this.languageRegex);if(0===n.length)return super._encode_text(e);if(2===n.length){const[t,e]=n;return this.supported_language_codes.includes(t)||console.warn(`Unsupported language code "${t}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),l([t],super._encode_text(e))}}}class sr extends mn{}class or extends mn{_default_chat_template="{% for message in messages %}{% if message['role'] == 'user' %}{{ ' ' }}{% endif %}{{ message['content'] }}{% if not loop.last %}{{ '  ' }}{% endif %}{% endfor %}{{ eos_token }}"}class ar extends or{}class ur extends mn{}class lr extends mn{}class cr extends mn{constructor(t,e){super(t,e),this.decoder=new sn({})}}class dr extends mn{}class hr{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:Pn,DistilBertTokenizer:kn,CamembertTokenizer:On,DebertaTokenizer:vn,DebertaV2Tokenizer:xn,BertTokenizer:_n,HerbertTokenizer:Tn,ConvBertTokenizer:Sn,RoFormerTokenizer:An,XLMTokenizer:En,ElectraTokenizer:In,MobileBertTokenizer:yn,SqueezeBertTokenizer:wn,AlbertTokenizer:bn,GPT2Tokenizer:Dn,BartTokenizer:Cn,MBartTokenizer:$n,MBart50Tokenizer:Mn,RobertaTokenizer:Fn,WhisperTokenizer:tr,CodeGenTokenizer:er,CLIPTokenizer:nr,SiglipTokenizer:rr,MarianTokenizer:ir,BloomTokenizer:Ln,NllbTokenizer:Yn,M2M100Tokenizer:Kn,LlamaTokenizer:Rn,CodeLlamaTokenizer:jn,XLMRobertaTokenizer:zn,MPNetTokenizer:Bn,FalconTokenizer:Un,GPTNeoXTokenizer:Vn,EsmTokenizer:Gn,Wav2Vec2CTCTokenizer:sr,BlenderbotTokenizer:or,BlenderbotSmallTokenizer:ar,SpeechT5Tokenizer:ur,NougatTokenizer:lr,VitsTokenizer:cr,Qwen2Tokenizer:qn,GemmaTokenizer:Wn,Grok1Tokenizer:Hn,CohereTokenizer:dr,PreTrainedTokenizer:mn};static async from_pretrained(t,{quantized:e=!0,progress_callback:n=null,config:r=null,cache_dir:i=null,local_files_only:s=!1,revision:o="main",legacy:a=null}={}){const[u,l]=await le(t,{quantized:e,progress_callback:n,config:r,cache_dir:i,local_files_only:s,revision:o,legacy:a}),c=l.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer";let d=this.TOKENIZER_CLASS_MAPPING[c];return d||(console.warn(`Unknown tokenizer class "${c}", attempting to construct from base class.`),d=mn),new d(u,l)}}class pr{constructor(t){this.model_type=null,this.is_encoder_decoder=!1,Object.assign(this,t)}static async from_pretrained(t,{progress_callback:e=null,config:n=null,cache_dir:r=null,local_files_only:i=!1,revision:s="main"}={}){let o=n??await async function(t,e){return await U(t,"config.json",!0,e)}(t,{progress_callback:e,config:n,cache_dir:r,local_files_only:i,revision:s});return new this(o)}}class fr{static async from_pretrained(...t){return pr.from_pretrained(...t)}}class gr extends s{constructor(){super(),this.processors=[]}push(t){this.processors.push(t)}extend(t){this.processors.push(...t)}_call(t,e){for(let n of e)this.processors.forEach((e=>e(t,n)))}[Symbol.iterator](){return this.processors.values()}}class mr extends s{_call(t,e){throw Error("`_call` should be implemented in a subclass")}}class _r extends mr{constructor(t){super(),this.force_token_map=Object.fromEntries(t??[])}_call(t,e){let n=this.force_token_map[t.length];return null!=n&&(e.data.fill(-1/0),e.data[n]=0),e}}class br extends mr{constructor(t){super(),this.bos_token_id=t}_call(t,e){return 1===t.length&&(e.data.fill(-1/0),e.data[this.bos_token_id]=0),e}}class yr extends mr{constructor(t,e){super(),this.max_length=t,this.forced_eos_token_id=e}_call(t,e){}}class wr extends mr{constructor(t,e){super(),this.begin_suppress_tokens=t,this.begin_index=e}_call(t,e){if(t.length===this.begin_index)for(let t of this.begin_suppress_tokens)e.data[t]=-1/0;return e}}class vr extends mr{constructor(t){super(),this.eos_token_id=t.eos_token_id,this.no_timestamps_token_id=t.no_timestamps_token_id,this.timestamp_begin=this.no_timestamps_token_id+1,this.begin_index=(t.forced_decoder_ids||[]).length+2,t.forced_decoder_ids.slice(-1)[0][1]===this.no_timestamps_token_id&&(this.begin_index-=1),this.max_initial_timestamp_index=t.max_initial_timestamp_index}_call(t,e){const n=e.data;if(n[this.no_timestamps_token_id]=-1/0,t.length===this.begin_index-1)return n.fill(-1/0),n[this.timestamp_begin]=0,e;const r=t.slice(this.begin_index),i=r.length>=1&&r[r.length-1]>=this.timestamp_begin,s=r.length<2||r[r.length-2]>=this.timestamp_begin;if(i&&(s?n.subarray(this.timestamp_begin).fill(-1/0):n.subarray(0,this.eos_token_id).fill(-1/0)),t.length===this.begin_index&&null!==this.max_initial_timestamp_index){const t=this.timestamp_begin+this.max_initial_timestamp_index;n.subarray(t+1).fill(-1/0)}const o=G(n).map((t=>Math.log(t)));return Math.log(o.subarray(this.timestamp_begin).map(Math.exp).reduce(((t,e)=>t+e)))>H(o.subarray(0,this.timestamp_begin))[0]&&n.subarray(0,this.timestamp_begin).fill(-1/0),e}}class xr extends mr{constructor(t){super(),this.no_repeat_ngram_size=t}getNgrams(t){const e=t.length,n=[];for(let r=0;r<e+1-this.no_repeat_ngram_size;++r){const e=[];for(let n=0;n<this.no_repeat_ngram_size;++n)e.push(t[r+n]);n.push(e)}const r=new Map;for(const t of n){const e=t.slice(0,t.length-1),n=JSON.stringify(e),i=r.get(n)??[];i.push(t[t.length-1]),r.set(n,i)}return r}getGeneratedNgrams(t,e){const n=e.slice(e.length+1-this.no_repeat_ngram_size,e.length);return t.get(JSON.stringify(n))??[]}calcBannedNgramTokens(t){if(t.length+1<this.no_repeat_ngram_size)return[];{const e=this.getNgrams(t);return this.getGeneratedNgrams(e,t)}}_call(t,e){const n=this.calcBannedNgramTokens(t);for(const t of n)e.data[t]=-1/0;return e}}class Tr extends mr{constructor(t){super(),this.penalty=t}_call(t,e){for(const n of t)e.data[n]<0?e.data[n]*=this.penalty:e.data[n]/=this.penalty;return e}}class Sr extends mr{constructor(t,e){super(),this.min_length=t,this.eos_token_id=Array.isArray(e)?e:[e]}_call(t,e){if(t.length<this.min_length)for(const t of this.eos_token_id)e.data[t]=-1/0;return e}}class Ar extends mr{constructor(t,e,n){super(),this.prompt_length_to_skip=t,this.min_new_tokens=e,this.eos_token_id=Array.isArray(n)?n:[n]}_call(t,e){if(t.length-this.prompt_length_to_skip<this.min_new_tokens)for(const t of this.eos_token_id)e.data[t]=-1/0;return e}}class kr extends mr{constructor(t,e){super(),this.bad_words_ids=t,this.eos_token_id=Array.isArray(e)?e:[e]}_call(t,e){for(const n of this.bad_words_ids){let r=!0;for(let e=1;e<=n.length-1&&n.length<t.length;++e)if(n.at(-e-1)!==t.at(-e)){r=!1;break}r&&(e.data[n.at(-1)]=-1/0)}return e}}const Or=class{constructor(t={}){this.max_length=t.max_length??20,this.max_new_tokens=t.max_new_tokens??null,this.min_length=t.min_length??0,this.min_new_tokens=t.min_new_tokens??null,this.early_stopping=t.early_stopping??!1,this.max_time=t.max_time??null,this.do_sample=t.do_sample??!1,this.num_beams=t.num_beams??1,this.num_beam_groups=t.num_beam_groups??1,this.penalty_alpha=t.penalty_alpha??null,this.use_cache=t.use_cache??!0,this.temperature=t.temperature??1,this.top_k=t.top_k??50,this.top_p=t.top_p??1,this.typical_p=t.typical_p??1,this.epsilon_cutoff=t.epsilon_cutoff??0,this.eta_cutoff=t.eta_cutoff??0,this.diversity_penalty=t.diversity_penalty??0,this.repetition_penalty=t.repetition_penalty??1,this.encoder_repetition_penalty=t.encoder_repetition_penalty??1,this.length_penalty=t.length_penalty??1,this.no_repeat_ngram_size=t.no_repeat_ngram_size??0,this.bad_words_ids=t.bad_words_ids??null,this.force_words_ids=t.force_words_ids??null,this.renormalize_logits=t.renormalize_logits??!1,this.constraints=t.constraints??null,this.forced_bos_token_id=t.forced_bos_token_id??null,this.forced_eos_token_id=t.forced_eos_token_id??null,this.remove_invalid_values=t.remove_invalid_values??!1,this.exponential_decay_length_penalty=t.exponential_decay_length_penalty??null,this.suppress_tokens=t.suppress_tokens??null,this.begin_suppress_tokens=t.begin_suppress_tokens??null,this.forced_decoder_ids=t.forced_decoder_ids??null,this.num_return_sequences=t.num_return_sequences??1,this.output_attentions=t.output_attentions??!1,this.output_hidden_states=t.output_hidden_states??!1,this.output_scores=t.output_scores??!1,this.return_dict_in_generate=t.return_dict_in_generate??!1,this.pad_token_id=t.pad_token_id??null,this.bos_token_id=t.bos_token_id??null,this.eos_token_id=t.eos_token_id??null,this.encoder_no_repeat_ngram_size=t.encoder_no_repeat_ngram_size??0,this.decoder_start_token_id=t.decoder_start_token_id??null,this.generation_kwargs=t.generation_kwargs??{}}};class Er extends s{constructor(t){super(),this.generation_config=t}_call(t,e=-1){return this.sample(t,e)}sample(t,e){throw Error("sample should be implemented in subclasses.")}getLogits(t,e){let n=t.dims.at(-1),r=t.data;if(-1===e)r=r.slice(-n);else{let t=e*n;r=r.slice(t,t+n)}return this.generation_config.temperature>0&&(r=r.map((t=>t/this.generation_config.temperature))),r}randomSelect(t){let e=t.reduce(((t,e)=>t+e),0),n=Math.random()*e;for(let e=0;e<t.length;++e)if(n-=t[e],n<=0)return e;return 0}static getSampler(t){if(t.do_sample)return new Pr(t);if(t.num_beams>1)return new Dr(t);if(t.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${t.num_return_sequences}.`);return new Ir(t)}}class Ir extends Er{sample(t,e=-1){return[[H(this.getLogits(t,e))[1],0]]}}class Pr extends Er{sample(t,e=-1){let n=t.dims.at(-1);this.generation_config.top_k>0&&(n=Math.min(this.generation_config.top_k,n));const r=q(this.getLogits(t,e),n),i=G(r.map((t=>t[1])));return Array.from({length:this.generation_config.num_beams},(()=>{const t=this.randomSelect(i);return[r[t][0],Math.log(i[t])]}))}}class Dr extends Er{sample(t,e=-1){let n=t.dims.at(-1);this.generation_config.top_k>0&&(n=Math.min(this.generation_config.top_k,n));const r=q(this.getLogits(t,e),n),i=G(r.map((t=>t[1])));return Array.from({length:this.generation_config.num_beams},((t,e)=>[r[e][0],Math.log(i[e])]))}}const{InferenceSession:Cr,Tensor:$r,env:Mr}=x,Fr=new Map,Lr=new Map,Nr=new Map;async function Rr(t,e,n){let r=`onnx/${e}${n.quantized?"_quantized":""}.onnx`,i=await B(t,r,!0,n);try{return await Cr.create(i,{executionProviders:T})}catch(t){if(1===T.length&&"wasm"===T[0])throw t;return console.warn(t),console.warn("Something went wrong during model construction (most likely a missing operation). Using `wasm` as a fallback. "),await Cr.create(i,{executionProviders:["wasm"]})}}async function jr(t,e){const n=function(t,e){const n=Object.create(null),r=[];for(const i of t.inputNames){const t=e[i];t instanceof nt?n[i]=Mr.wasm.proxy?t.clone():t:r.push(i)}if(r.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${r.join(", ")}.`);const i=Object.keys(e).length,s=t.inputNames.length;if(i>s){let n=Object.keys(e).filter((e=>!t.inputNames.includes(e)));console.warn(`WARNING: Too many inputs were provided (${i} > ${s}). The following inputs will be ignored: "${n.join(", ")}".`)}return n}(t,e);try{let e=await t.run(n);return e=zr(e),e}catch(t){throw console.error(`An error occurred during model execution: "${t}".`),console.error("Inputs given to model:",n),t}}function zr(t){for(let e in t)t[e]instanceof $r?t[e]=new nt(t[e]):"object"==typeof t[e]&&zr(t[e]);return t}function Br(t){if(t instanceof nt)return t;if(0===t.length)throw Error("items must be non-empty");if(Array.isArray(t[0])){if(t.some((e=>e.length!==t[0].length)))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new nt("int64",BigInt64Array.from(t.flat().map((t=>BigInt(t)))),[t.length,t[0].length])}return new nt("int64",BigInt64Array.from(t.map((t=>BigInt(t)))),[1,t.length])}function Ur(t,e){let n=t.config.pad_token_id??null,r=t.config.eos_token_id??null;o(r)&&(r=[r]);let i=-1!==e.indexOf(n),s=null===r||!r.includes(n);if(i&&s){let t=BigInt64Array.from(e.data.map((t=>t!=n)));return new nt("int64",t,e.dims)}return function(t){const e=t.reduce(((t,e)=>t*e),1);return new nt("int64",new BigInt64Array(e).fill(1n),t)}(e.dims)}function Vr(t,e,n){if(!t.inputNames.includes("position_ids"))return;const r=new BigInt64Array(e.attention_mask.data.length);for(let t=0;t<e.attention_mask.dims[0];++t){let n=t*e.attention_mask.dims[1],i=BigInt(0);for(let t=0;t<e.attention_mask.dims[1];++t){const s=n+t;0n===e.attention_mask.data[s]?r[s]=BigInt(1):(r[s]=i,i+=e.attention_mask.data[s])}}e.position_ids=new nt("int64",r,e.attention_mask.dims),n&&(e.position_ids=e.position_ids.slice(null,-1).unsqueeze_(-1))}function Gr(t){return new nt("bool",[t],[1])}async function qr(t,e){let{encoder_outputs:n,past_key_values:r}=e;n||(n=(await Yr(t,e)).last_hidden_state);let i={input_ids:e.decoder_input_ids,encoder_hidden_states:n};const s=!!r;t.decoder_merged_session.inputNames.includes("use_cache_branch")&&(i.use_cache_branch=Gr(s)),t.decoder_merged_session.inputNames.includes("encoder_attention_mask")&&(i.encoder_attention_mask=e.attention_mask),Vr(t.decoder_merged_session,i,s),t.addPastKeyValues(i,r);const o=await jr(t.decoder_merged_session,i);let a=o.logits;r=t.getPastKeyValues(o,r);const u=t.getAttentions(o);return new bo({logits:a,past_key_values:r,encoder_outputs:n,...u})}function Wr(t,e,n,r){let i=[],s=0;const o=t.requires_attention_mask??!0;let a=n.decoder_input_ids??n.decoder_start_token_id??n.bos_token_id??n.eos_token_id;a instanceof nt?a=a.tolist().flat():Array.isArray(a)||(a=[a]);for(let n of e){n.dims=[1,...n.dims];let e={inputs:n,encoder_outputs:null,prev_model_outputs:null,output_token_ids:a,done:!1,score:0,id:s++};o&&(e.attention_mask=Ur(t,n)),i.push(e)}return i}async function Hr(t,e){const n=t.main_input_name;let r=e.output_token_ids;e.prev_model_outputs&&(r=r.slice(-1));let i={[n]:e.inputs,decoder_input_ids:Br(r),encoder_outputs:e.encoder_outputs,past_key_values:e.prev_model_outputs?.past_key_values};e.attention_mask&&(i.attention_mask=e.attention_mask);let s=await t.forward(i);return e.prev_model_outputs=s,e.encoder_outputs=s.encoder_outputs,s}function Xr(t,e){t.output_token_ids=[...t.output_token_ids,e]}async function Yr(t,e){const n=Object.create(null);for(const r of t.session.inputNames)n[r]=e[r];return t.session.inputNames.includes("token_type_ids")&&!n.token_type_ids&&(n.token_type_ids=new nt("int64",new BigInt64Array(n.input_ids.data.length),n.input_ids.dims)),await jr(t.session,n)}async function Kr(t,e){let{input_ids:n,past_key_values:r,attention_mask:i}=e,s={input_ids:n,attention_mask:i??Ur(t,n)};const o=!!r;t.session.inputNames.includes("use_cache_branch")&&(s.use_cache_branch=Gr(o)),Vr(t.session,s,o),t.addPastKeyValues(s,r);let a=await jr(t.session,s),u=a.logits;return r=t.getPastKeyValues(a,r),{logits:u,past_key_values:r}}function Zr(t,e,n,r,i){let s=[],o=0;for(let n of e){let e,a=n.tolist().map(Number);n.dims=[1,...n.dims],i?(e=i[o],e.dims=[1,...e.dims]):e=Ur(t,n);let u={input:n,model_input_ids:n,attention_mask:e,prev_model_outputs:null,output_token_ids:a,num_output_tokens:r,done:!1,score:0,id:o++};s.push(u)}return s}async function Jr(t,e){let n=new BigInt64Array(e.output_token_ids.length).fill(1n),r={input_ids:e.model_input_ids,attention_mask:new nt("int64",n,[1,n.length]),past_key_values:e.prev_model_outputs?.past_key_values},i=await t.forward(r);return e.prev_model_outputs=i,i}function Qr(t,e){t.output_token_ids=[...t.output_token_ids,e],t.model_input_ids=new nt("int64",[BigInt(e)],[1,1])}class ti extends s{main_input_name="input_ids";constructor(t,e){super(),this.config=t,this.session=e;const n=Nr.get(this.constructor),r=Fr.get(n);this.can_generate=!1,this._runBeam=null,this._getStartBeams=null,this._updateBeam=null,this._forward=null,4===r?(this.can_generate=!0,this._runBeam=Jr,this._getStartBeams=Zr,this._updateBeam=Qr,this._forward=Kr):2===r||3===r?(this.can_generate=!0,this._runBeam=Hr,this._getStartBeams=Wr,this._updateBeam=Xr,this._forward=qr):this._forward=Yr}async dispose(){const t=[];for(let e of Object.keys(this)){const n=this[e];n instanceof Cr&&t.push(n.handler.dispose())}return await Promise.all(t)}static async from_pretrained(t,{quantized:e=!0,progress_callback:n=null,config:r=null,cache_dir:i=null,local_files_only:s=!1,revision:o="main",model_file_name:a=null}={}){let u={quantized:e,progress_callback:n,config:r,cache_dir:i,local_files_only:s,revision:o,model_file_name:a};const l=Nr.get(this),c=Fr.get(l);let d;return 4===c?d=await Promise.all([fr.from_pretrained(t,u),Rr(t,u.model_file_name??"decoder_model_merged",u),U(t,"generation_config.json",!1,u)]):2===c||3===c?d=await Promise.all([fr.from_pretrained(t,u),Rr(t,"encoder_model",u),Rr(t,"decoder_model_merged",u),U(t,"generation_config.json",!1,u)]):5===c?d=await Promise.all([fr.from_pretrained(t,u),Rr(t,"vision_encoder",u),Rr(t,"prompt_encoder_mask_decoder",u)]):1===c?d=await Promise.all([fr.from_pretrained(t,u),Rr(t,"encoder_model",u),Rr(t,"decoder_model_merged",u)]):(0!==c&&console.warn(`Model type for '${l??r?.model_type}' not found, assuming encoder-only architecture. Please report this at https://github.com/xenova/transformers.js/issues/new/choose.`),d=await Promise.all([fr.from_pretrained(t,u),Rr(t,u.model_file_name??"model",u)])),new this(...d)}async _call(t){return await this.forward(t)}async forward(t){return await this._forward(this,t)}_get_logits_processor(t,e,n=null){const r=new gr;if(null!==t.repetition_penalty&&1!==t.repetition_penalty&&r.push(new Tr(t.repetition_penalty)),null!==t.no_repeat_ngram_size&&t.no_repeat_ngram_size>0&&r.push(new xr(t.no_repeat_ngram_size)),null!==t.bad_words_ids&&r.push(new kr(t.bad_words_ids,t.eos_token_id)),null!==t.min_length&&null!==t.eos_token_id&&t.min_length>0&&r.push(new Sr(t.min_length,t.eos_token_id)),null!==t.min_new_tokens&&null!==t.eos_token_id&&t.min_new_tokens>0&&r.push(new Ar(e,t.min_new_tokens,t.eos_token_id)),null!==t.forced_bos_token_id&&r.push(new br(t.forced_bos_token_id)),null!==t.forced_eos_token_id&&r.push(new yr(t.max_length,t.forced_eos_token_id)),null!==t.begin_suppress_tokens){let n=e>1||null===t.forced_bos_token_id?e:e+1;null!==t.forced_decoder_ids&&(n+=t.forced_decoder_ids[t.forced_decoder_ids.length-1][0]),r.push(new wr(t.begin_suppress_tokens,n))}return null!==t.forced_decoder_ids&&r.push(new _r(t.forced_decoder_ids)),null!==n&&r.extend(n),r}_get_generation_config(t){let e=new Or(this.config);return"generation_config"in this&&Object.assign(e,this.generation_config),null!==t&&Object.assign(e,t),e}async generate(t,e=null,n=null,{inputs_attention_mask:r=null}={}){if(!this.can_generate){let t=`The current model class (${Nr.get(this.constructor)}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;const e=this.config.model_type,n=Hs.get(e)??Ws.get(e)??Bs.get(e)??Ks.get(e);throw n&&(t+=` Please use the following class instead: '${n[0]}'`),Error(t)}if(!(t instanceof nt||(i=t,"TypedArray"===i?.prototype?.__proto__?.constructor?.name)||Array.isArray(t)))throw Error(`\`inputs\` must be a Tensor, TypedArray, or Array, but is "${t.constructor.name}".`);var i;let s;if(this.config.is_encoder_decoder)s=0;else if(s=t instanceof nt?t.dims.at(-1):t.length,0===s)throw Error("Must supply a non-empty array of input token ids.");e=this._get_generation_config(e),n=n??new gr,n=this._get_logits_processor(e,s,n);let o=e.eos_token_id;null===o||Array.isArray(o)||(o=[o]);let a=1;const u=a+(e.max_new_tokens??1/0),l=Number.isInteger(e.max_length)&&null===(e.max_new_tokens??null);let c=Er.getSampler(e),d=this.getStartBeams(t,e,a,r);for(;d.some((t=>!t.done))&&a<u;){let t=[];for(let r of d){if(r.done){t.push(r);continue}if(l&&r.output_token_ids.length>=e.max_length){r.done=!0,t.push(r);continue}let i=await this.runBeam(r);e.output_attentions&&this.addAttentionsToBeam(r,i),e.output_scores;let s=i.logits.slice(null,-1,null);n(r.output_token_ids,s);let a=c(s);for(let[e,n]of a){let i={...r};this.updateBeam(i,e),i.score+=n,o&&o.includes(e)&&(i.done=!0),t.push(i)}}++a,t=this.groupBeams(t).map((t=>t.sort(((t,e)=>e.score-t.score)).slice(0,e.num_beams))),d=t.flat(),e.callback_function&&e.callback_function(d)}const h=this.groupBeams(d),p=t=>h.map((n=>e.num_return_sequences>1?n.slice(0,e.num_return_sequences).map((e=>e[t])):[n[0][t]])).flat(),f=p("output_token_ids");return e.return_dict_in_generate?{sequences:f,decoder_attentions:p("decoder_attentions"),cross_attentions:p("cross_attentions")}:f}addAttentionsToBeam(t,e){if(this.config.is_encoder_decoder){if(!e.cross_attentions||0===e.cross_attentions.length)throw Error("`output_attentions` is true, but the model did not produce cross-attentions. This is most likely because the model was not exported with `output_attentions=True`.");t.cross_attentions||(t.cross_attentions=[]),t.cross_attentions.push(e.cross_attentions)}if(!e.decoder_attentions||0===e.decoder_attentions.length)throw Error("`output_attentions` is true, but the model did not produce decoder-attentions. This is most likely because the model was not exported with `output_attentions=True`.");t.decoder_attentions||(t.decoder_attentions=[]),t.decoder_attentions.push(e.decoder_attentions)}groupBeams(t){const e=Object.create(null);for(const n of t)void 0===e[n.id]?e[n.id]=[n]:e[n.id].push(n);return Object.values(e)}getPastKeyValues(t,e){const n=Object.create(null);for(const r in t)if(r.startsWith("present")){let i=r.replace("present","past_key_values");e&&r.includes("encoder")?n[i]=e[i]:n[i]=t[r]}return n}getAttentions(t){const e=Object.create(null);for(const n of["cross_attentions","decoder_attentions"]){const r=[];for(const e in t)e.startsWith(n)&&(r[e.split(".").pop()]=t[e]);e[n]=r}return e}addPastKeyValues(t,e){if(e)Object.assign(t,e);else{const e=1;if(this.config.is_encoder_decoder&&(this.add_encoder_pkv??1)){let n=[e,this.num_encoder_heads,0,this.encoder_dim_kv],r=[e,this.num_decoder_heads,0,this.decoder_dim_kv];for(let e=0;e<this.num_decoder_layers;++e)t[`past_key_values.${e}.encoder.key`]=new nt("float32",[],n),t[`past_key_values.${e}.encoder.value`]=new nt("float32",[],n),t[`past_key_values.${e}.decoder.key`]=new nt("float32",[],r),t[`past_key_values.${e}.decoder.value`]=new nt("float32",[],r)}else if("falcon"===this.config.model_type){let n=[e*this.num_heads,0,this.dim_kv];for(let e=0;e<this.num_layers;++e)t[`past_key_values.${e}.key`]=new nt("float32",[],n),t[`past_key_values.${e}.value`]=new nt("float32",[],n)}else if(this.config.multi_query){let n=[e*this.num_heads,0,2*this.dim_kv];for(let e=0;e<this.num_layers;++e)t[`past_key_values.${e}.key_value`]=new nt("float32",[],n)}else if("bloom"===this.config.model_type){let n=[e*this.num_heads,this.dim_kv,0],r=[e*this.num_heads,0,this.dim_kv];for(let e=0;e<this.num_layers;++e)t[`past_key_values.${e}.key`]=new nt("float32",[],n),t[`past_key_values.${e}.value`]=new nt("float32",[],r)}else{let n=[e,this.num_heads,0,this.dim_kv];for(let e=0;e<this.num_layers;++e)t[`past_key_values.${e}.key`]=new nt("float32",[],n),t[`past_key_values.${e}.value`]=new nt("float32",[],n)}}}getStartBeams(t,e,n,r){return this._getStartBeams(this,t,e,n,r)}async runBeam(t){return await this._runBeam(this,t)}updateBeam(t,e){return this._updateBeam(t,e)}}class ei{}class ni extends ti{}class ri extends ti{}class ii extends ti{}class si extends ti{}class oi extends ti{}class ai extends ti{}class ui extends ti{}class li extends ti{}class ci extends ti{}class di extends ti{}class hi extends ti{}class pi extends ti{}class fi extends ti{}class gi extends ti{}class mi extends ti{}class _i extends ti{}class bi extends ti{}class yi extends ti{}class wi extends ti{}class vi extends ti{}class xi extends ti{}class Ti extends ti{}class Si extends ti{}class Ai extends ti{}class ki extends ti{}class Oi extends ti{}class Ei extends ti{main_input_name="pixel_values";constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r;const i=this.config.encoder,s=this.config.decoder,o=i.model_type;(Rs.get(o)??js.get(o))||console.warn(`Model type for encoder '${o}' not found, assuming encoder-only architecture. Please report this at https://github.com/xenova/transformers.js/issues/new/choose.`);const a=Hs.get(s.model_type);if(!a)throw new Error(`Unable to construct \`VisionEncoderDecoder\` due to unsupported decoder: "${this.config.decoder.model_type}"`);const u=new(0,a[1])(s,n,r);this.add_encoder_pkv="num_decoder_layers"in u,this.add_encoder_pkv?(this.num_decoder_layers=u.num_decoder_layers,this.num_decoder_heads=u.num_decoder_heads,this.decoder_dim_kv=u.decoder_dim_kv,this.num_encoder_layers=u.num_encoder_layers,this.num_encoder_heads=u.num_encoder_heads,this.encoder_dim_kv=u.encoder_dim_kv):(this.num_layers=u.num_layers,this.num_heads=u.num_heads,this.dim_kv=u.dim_kv)}}class Ii extends ti{}class Pi extends ti{}class Di extends ti{}class Ci extends ti{}class $i extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class Mi extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_heads,this.num_layers=this.config.num_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class Fi extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class Li extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class Ni extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class Ri extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class ji extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads??this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class zi extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads??this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class Bi extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class Ui extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.hidden_size/this.num_heads}}class Vi extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_heads,this.num_layers=this.config.n_layers,this.dim_kv=this.config.d_model/this.num_heads}}class Gi extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class qi extends ti{}class Wi extends ti{}class Hi extends ti{}class Xi extends ti{}class Yi extends ti{}class Ki extends ti{}class Zi extends ti{}class Ji extends ei{constructor({logits:t,pred_boxes:e}){super(),this.logits=t,this.pred_boxes=e}}class Qi extends ei{constructor({logits:t,pred_boxes:e,pred_masks:n}){super(),this.logits=t,this.pred_boxes=e,this.pred_masks=n}}class ts extends ti{}class es extends Ji{}class ns extends ti{}class rs extends ti{}class is extends ti{}class ss extends ti{}class os extends ti{}class as extends ti{}class us extends ti{}class ls extends ti{}class cs extends ti{}class ds extends ti{}class hs extends ti{}class ps extends ti{}class fs extends ei{constructor({logits:t,pred_boxes:e}){super(),this.logits=t,this.pred_boxes=e}}class gs extends ti{}class ms extends ei{constructor({iou_scores:t,pred_masks:e}){super(),this.iou_scores=t,this.pred_masks=e}}class _s extends ti{}class bs extends ti{}class ys extends ti{}class ws extends ti{}class vs extends ti{}class xs extends ti{}class Ts extends ti{}class Ss extends ti{}class As extends Ss{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.hidden_size/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.hidden_size/this.num_encoder_heads}async generate_speech(t,e,{threshold:n=.5,minlenratio:r=0,maxlenratio:i=20,vocoder:s=null}={}){const o={input_ids:t},{encoder_outputs:a,encoder_attention_mask:u}=await Yr(this,o),l=a.dims[1]/this.config.reduction_factor,c=Math.floor(l*i),d=Math.floor(l*r),h=this.config.num_mel_bins;let p=[],f=null,g=null,m=0;for(;;){++m;const t=Gr(!!g);let r;r=g?g.output_sequence_out:new nt("float32",new Float32Array(h),[1,1,h]);let i={use_cache_branch:t,output_sequence:r,encoder_attention_mask:u,speaker_embeddings:e,encoder_hidden_states:a};this.addPastKeyValues(i,f),g=await jr(this.decoder_merged_session,i),f=this.getPastKeyValues(g,f);const{prob:s,spectrum:o}=g;if(p.push(o),m>=d&&(Array.from(s.data).filter((t=>t>=n)).length>0||m>=c))break}const _=at(p),{waveform:b}=await jr(s.session,{spectrogram:_});return{spectrogram:_,waveform:b}}}class ks extends ti{main_input_name="spectrogram"}class Os extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_encoder_layers=this.num_decoder_layers=this.config.decoder_layers,this.num_encoder_heads=this.num_decoder_heads=this.config.decoder_attention_heads,this.encoder_dim_kv=this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads}}class Es extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class Is extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class Ps extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class Ds extends ti{}class Cs extends ti{}class $s extends Cs{async _call(t){return new ko(await super._call(t))}}class Ms extends ti{}class Fs extends ti{constructor(t,e,n){super(t,e),this.generation_config=n,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class Ls extends ti{}class Ns{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(t,{quantized:e=!0,progress_callback:n=null,config:r=null,cache_dir:i=null,local_files_only:s=!1,revision:o="main",model_file_name:a=null}={}){let u={quantized:e,progress_callback:n,config:r,cache_dir:i,local_files_only:s,revision:o,model_file_name:a};if(r=await fr.from_pretrained(t,u),u.config||(u.config=r),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);for(let e of this.MODEL_CLASS_MAPPINGS){const n=e.get(r.model_type);if(n)return await n[1].from_pretrained(t,u)}if(this.BASE_IF_FAIL)return console.warn(`Unknown model class "${r.model_type}", attempting to construct from base class.`),await ti.from_pretrained(t,u);throw Error(`Unsupported model type: ${r.model_type}`)}}const Rs=new Map([["bert",["BertModel",class extends ni{}]],["nomic_bert",["NomicBertModel",class extends ri{}]],["roformer",["RoFormerModel",class extends ii{}]],["electra",["ElectraModel",class extends oi{}]],["esm",["EsmModel",class extends di{}]],["convbert",["ConvBertModel",class extends si{}]],["camembert",["CamembertModel",class extends ai{}]],["deberta",["DebertaModel",class extends ui{}]],["deberta-v2",["DebertaV2Model",class extends li{}]],["mpnet",["MPNetModel",class extends pi{}]],["albert",["AlbertModel",class extends gi{}]],["distilbert",["DistilBertModel",class extends ci{}]],["roberta",["RobertaModel",class extends Ti{}]],["xlm",["XLMModel",class extends Si{}]],["xlm-roberta",["XLMRobertaModel",class extends Ai{}]],["clap",["ClapModel",class extends Ds{}]],["clip",["CLIPModel",class extends Ii{}]],["clipseg",["CLIPSegModel",class extends Ci{}]],["chinese_clip",["ChineseCLIPModel",class extends Di{}]],["siglip",["SiglipModel",class extends Pi{}]],["mobilebert",["MobileBertModel",class extends hi{}]],["squeezebert",["SqueezeBertModel",class extends fi{}]],["wav2vec2",["Wav2Vec2Model",class extends ys{}]],["wav2vec2-bert",["Wav2Vec2BertModel",class extends xs{}]],["unispeech",["UniSpeechModel",class extends ws{}]],["unispeech-sat",["UniSpeechSatModel",class extends vs{}]],["hubert",["HubertModel",class extends ys{}]],["wavlm",["WavLMModel",class extends Ts{}]],["audio-spectrogram-transformer",["ASTModel",class extends ki{}]],["vits",["VitsModel",$s]],["detr",["DetrModel",class extends Zi{}]],["table-transformer",["TableTransformerModel",class extends ts{}]],["vit",["ViTModel",class extends qi{}]],["mobilevit",["MobileViTModel",class extends Hi{}]],["owlvit",["OwlViTModel",class extends Xi{}]],["owlv2",["Owlv2Model",class extends Yi{}]],["beit",["BeitModel",class extends Ki{}]],["deit",["DeiTModel",class extends ns{}]],["convnext",["ConvNextModel",class extends cs{}]],["convnextv2",["ConvNextV2Model",class extends ds{}]],["dinov2",["Dinov2Model",class extends hs{}]],["resnet",["ResNetModel",class extends rs{}]],["swin",["SwinModel",class extends is{}]],["swin2sr",["Swin2SRModel",class extends ss{}]],["donut-swin",["DonutSwinModel",class extends ls{}]],["yolos",["YolosModel",class extends ps{}]],["dpt",["DPTModel",class extends os{}]],["glpn",["GLPNModel",class extends us{}]],["hifigan",["SpeechT5HifiGan",ks]],["efficientnet",["EfficientNetModel",class extends Ls{}]]]),js=new Map([["t5",["T5Model",class extends mi{}]],["longt5",["LongT5Model",class extends _i{}]],["mt5",["MT5Model",class extends bi{}]],["bart",["BartModel",class extends yi{}]],["mbart",["MBartModel",class extends wi{}]],["marian",["MarianModel",class extends _s{}]],["whisper",["WhisperModel",class extends Oi{}]],["m2m_100",["M2M100Model",class extends bs{}]],["blenderbot",["BlenderbotModel",class extends vi{}]],["blenderbot-small",["BlenderbotSmallModel",class extends xi{}]]]),zs=new Map([["bloom",["BloomModel",class extends Ui{}]],["gpt2",["GPT2Model",class extends $i{}]],["gptj",["GPTJModel",class extends Li{}]],["gpt_bigcode",["GPTBigCodeModel",class extends Ni{}]],["gpt_neo",["GPTNeoModel",class extends Mi{}]],["gpt_neox",["GPTNeoXModel",class extends Fi{}]],["codegen",["CodeGenModel",class extends Ri{}]],["llama",["LlamaModel",class extends ji{}]],["qwen2",["Qwen2Model",class extends zi{}]],["phi",["PhiModel",class extends Bi{}]],["mpt",["MptModel",class extends Vi{}]],["opt",["OPTModel",class extends Gi{}]],["mistral",["MistralModel",class extends Es{}]],["starcoder2",["Starcoder2Model",class extends Is{}]],["falcon",["FalconModel",class extends Ps{}]]]),Bs=new Map([["speecht5",["SpeechT5ForSpeechToText",class extends Ss{}]],["whisper",["WhisperForConditionalGeneration",class extends Oi{requires_attention_mask=!1;main_input_name="input_features";constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}async generate(t,e=null,n=null){if(e=this._get_generation_config(e),e.return_timestamps??=!1,e.return_timestamps&&(n=[new vr(e)]),e.return_token_timestamps&&(e.output_attentions=!0,e.return_dict_in_generate=!0,"translate"===e.task&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),!e.alignment_heads))throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");const r=await super.generate(t,e,n);return e.return_token_timestamps&&e.alignment_heads&&(r.token_timestamps=this._extract_token_timestamps(r,e.alignment_heads,e.num_frames)),r}_extract_token_timestamps(t,e,n=null,r=.02){if(!t.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");let i=this.config.median_filter_width;void 0===i&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),i=7);const s=t.cross_attentions.map((t=>{let r=Array.from({length:this.config.decoder_layers},((e,n)=>at(t.map((t=>t[n])),2))),s=ut(e.map((([t,e])=>n?r[t].slice(null,e,null,[0,n]):r[t].slice(null,e))));s=s.transpose(1,0,2,3);let[o,a]=function(t,e=null,n=1,r=!1){if(null===e){const e=t.data.reduce(((t,e)=>t+e),0)/t.data.length,r=Math.sqrt(t.data.reduce(((t,n)=>t+(n-e)**2),0)/(t.data.length-n)),i=new nt(t.type,[e],[]);return[new nt(t.type,[r],[]),i]}const i=lt(t,e=ot(e,t.dims.length),r),s=t.dims.slice();s[e]=1;const o=new t.data.constructor(t.data.length/t.dims[e]);for(let n=0;n<t.data.length;++n){let r=0;for(let i=t.dims.length-1,o=n,a=1;i>=0;--i){const n=t.dims[i];i!==e&&(r+=o%n*a,a*=s[i]),o=Math.floor(o/n)}o[r]+=(t.data[n]-i.data[r])**2}for(let r=0;r<o.length;++r)o[r]=Math.sqrt(o[r]/(t.dims[e]-n));return r||s.splice(e,1),[new nt(t.type,o,s),i]}(s,-2,0,!0),u=s.clone();for(let t=0;t<u.dims[0];++t){let e=u[t];for(let n=0;n<e.dims[0];++n){let r=e[n];const s=o[t][n][0],u=a[t][n][0];for(let t=0;t<r.dims[0];++t){let e=r[t];for(let t=0;t<e.data.length;++t)e.data[t]=(e.data[t]-u.data[t])/s.data[t];e.data.set(J(e.data,i))}}}return lt(u,1)})),o=[t.sequences.length,t.sequences[0].length],a=new nt("float32",new Float32Array(o[0]*o[1]),o);for(let t=0;t<o[0];++t){const e=s[t].neg().squeeze_(0);let[n,i]=ct(e),o=l([1],Array.from({length:n.length-1},((t,e)=>n[e+1]-n[e]))).map((t=>!!t)),u=[];for(let t=0;t<o.length;++t)o[t]&&u.push(i[t]*r);a[t].data.set(u,1)}return a}}]]]),Us=new Map([["speecht5",["SpeechT5ForTextToSpeech",As]]]),Vs=new Map([["vits",["VitsModel",$s]]]),Gs=new Map([["bert",["BertForSequenceClassification",class extends ni{async _call(t){return new yo(await super._call(t))}}]],["roformer",["RoFormerForSequenceClassification",class extends ii{async _call(t){return new yo(await super._call(t))}}]],["electra",["ElectraForSequenceClassification",class extends oi{async _call(t){return new yo(await super._call(t))}}]],["esm",["EsmForSequenceClassification",class extends di{async _call(t){return new yo(await super._call(t))}}]],["convbert",["ConvBertForSequenceClassification",class extends si{async _call(t){return new yo(await super._call(t))}}]],["camembert",["CamembertForSequenceClassification",class extends ai{async _call(t){return new yo(await super._call(t))}}]],["deberta",["DebertaForSequenceClassification",class extends ui{async _call(t){return new yo(await super._call(t))}}]],["deberta-v2",["DebertaV2ForSequenceClassification",class extends li{async _call(t){return new yo(await super._call(t))}}]],["mpnet",["MPNetForSequenceClassification",class extends pi{async _call(t){return new yo(await super._call(t))}}]],["albert",["AlbertForSequenceClassification",class extends gi{async _call(t){return new yo(await super._call(t))}}]],["distilbert",["DistilBertForSequenceClassification",class extends ci{async _call(t){return new yo(await super._call(t))}}]],["roberta",["RobertaForSequenceClassification",class extends Ti{async _call(t){return new yo(await super._call(t))}}]],["xlm",["XLMForSequenceClassification",class extends Si{async _call(t){return new yo(await super._call(t))}}]],["xlm-roberta",["XLMRobertaForSequenceClassification",class extends Ai{async _call(t){return new yo(await super._call(t))}}]],["bart",["BartForSequenceClassification",class extends yi{async _call(t){return new yo(await super._call(t))}}]],["mbart",["MBartForSequenceClassification",class extends wi{async _call(t){return new yo(await super._call(t))}}]],["mobilebert",["MobileBertForSequenceClassification",class extends hi{async _call(t){return new yo(await super._call(t))}}]],["squeezebert",["SqueezeBertForSequenceClassification",class extends fi{async _call(t){return new yo(await super._call(t))}}]]]),qs=new Map([["bert",["BertForTokenClassification",class extends ni{async _call(t){return new vo(await super._call(t))}}]],["roformer",["RoFormerForTokenClassification",class extends ii{async _call(t){return new vo(await super._call(t))}}]],["electra",["ElectraForTokenClassification",class extends oi{async _call(t){return new vo(await super._call(t))}}]],["esm",["EsmForTokenClassification",class extends di{async _call(t){return new vo(await super._call(t))}}]],["convbert",["ConvBertForTokenClassification",class extends si{async _call(t){return new vo(await super._call(t))}}]],["camembert",["CamembertForTokenClassification",class extends ai{async _call(t){return new vo(await super._call(t))}}]],["deberta",["DebertaForTokenClassification",class extends ui{async _call(t){return new vo(await super._call(t))}}]],["deberta-v2",["DebertaV2ForTokenClassification",class extends li{async _call(t){return new vo(await super._call(t))}}]],["mpnet",["MPNetForTokenClassification",class extends pi{async _call(t){return new vo(await super._call(t))}}]],["distilbert",["DistilBertForTokenClassification",class extends ci{async _call(t){return new vo(await super._call(t))}}]],["roberta",["RobertaForTokenClassification",class extends Ti{async _call(t){return new vo(await super._call(t))}}]],["xlm",["XLMForTokenClassification",class extends Si{async _call(t){return new vo(await super._call(t))}}]],["xlm-roberta",["XLMRobertaForTokenClassification",class extends Ai{async _call(t){return new vo(await super._call(t))}}]]]),Ws=new Map([["t5",["T5ForConditionalGeneration",class extends mi{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.num_decoder_layers,this.num_decoder_heads=this.config.num_heads,this.decoder_dim_kv=this.config.d_kv,this.num_encoder_layers=this.config.num_layers,this.num_encoder_heads=this.config.num_heads,this.encoder_dim_kv=this.config.d_kv}}]],["longt5",["LongT5ForConditionalGeneration",class extends _i{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.num_decoder_layers,this.num_decoder_heads=this.config.num_heads,this.decoder_dim_kv=this.config.d_kv,this.num_encoder_layers=this.config.num_layers,this.num_encoder_heads=this.config.num_heads,this.encoder_dim_kv=this.config.d_kv}}]],["mt5",["MT5ForConditionalGeneration",class extends bi{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.num_decoder_layers,this.num_decoder_heads=this.config.num_heads,this.decoder_dim_kv=this.config.d_kv,this.num_encoder_layers=this.config.num_layers,this.num_encoder_heads=this.config.num_heads,this.encoder_dim_kv=this.config.d_kv}}]],["bart",["BartForConditionalGeneration",class extends yi{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]],["mbart",["MBartForConditionalGeneration",class extends wi{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]],["marian",["MarianMTModel",class extends _s{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]],["m2m_100",["M2M100ForConditionalGeneration",class extends bs{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]],["blenderbot",["BlenderbotForConditionalGeneration",class extends vi{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",class extends xi{constructor(t,e,n,r){super(t,e),this.decoder_merged_session=n,this.generation_config=r,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]]]),Hs=new Map([["bloom",["BloomForCausalLM",class extends Ui{}]],["gpt2",["GPT2LMHeadModel",class extends $i{}]],["gptj",["GPTJForCausalLM",class extends Li{}]],["gpt_bigcode",["GPTBigCodeForCausalLM",class extends Ni{}]],["gpt_neo",["GPTNeoForCausalLM",class extends Mi{}]],["gpt_neox",["GPTNeoXForCausalLM",class extends Fi{}]],["codegen",["CodeGenForCausalLM",class extends Ri{}]],["llama",["LlamaForCausalLM",class extends ji{}]],["qwen2",["Qwen2ForCausalLM",class extends zi{}]],["phi",["PhiForCausalLM",class extends Bi{}]],["mpt",["MptForCausalLM",class extends Vi{}]],["opt",["OPTForCausalLM",class extends Gi{}]],["mbart",["MBartForCausalLM",class extends wi{constructor(t,e,n){super(t,e),this.generation_config=n,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}}]],["mistral",["MistralForCausalLM",class extends Es{}]],["starcoder2",["Starcoder2ForCausalLM",class extends Is{}]],["falcon",["FalconForCausalLM",class extends Ps{}]],["trocr",["TrOCRForCausalLM",class extends Os{}]],["stablelm",["StableLmForCausalLM",class extends Fs{}]]]),Xs=new Map([["bert",["BertForMaskedLM",class extends ni{async _call(t){return new xo(await super._call(t))}}]],["roformer",["RoFormerForMaskedLM",class extends ii{async _call(t){return new xo(await super._call(t))}}]],["electra",["ElectraForMaskedLM",class extends oi{async _call(t){return new xo(await super._call(t))}}]],["esm",["EsmForMaskedLM",class extends di{async _call(t){return new xo(await super._call(t))}}]],["convbert",["ConvBertForMaskedLM",class extends si{async _call(t){return new xo(await super._call(t))}}]],["camembert",["CamembertForMaskedLM",class extends ai{async _call(t){return new xo(await super._call(t))}}]],["deberta",["DebertaForMaskedLM",class extends ui{async _call(t){return new xo(await super._call(t))}}]],["deberta-v2",["DebertaV2ForMaskedLM",class extends li{async _call(t){return new xo(await super._call(t))}}]],["mpnet",["MPNetForMaskedLM",class extends pi{async _call(t){return new xo(await super._call(t))}}]],["albert",["AlbertForMaskedLM",class extends gi{async _call(t){return new xo(await super._call(t))}}]],["distilbert",["DistilBertForMaskedLM",class extends ci{async _call(t){return new xo(await super._call(t))}}]],["roberta",["RobertaForMaskedLM",class extends Ti{async _call(t){return new xo(await super._call(t))}}]],["xlm",["XLMWithLMHeadModel",class extends Si{async _call(t){return new xo(await super._call(t))}}]],["xlm-roberta",["XLMRobertaForMaskedLM",class extends Ai{async _call(t){return new xo(await super._call(t))}}]],["mobilebert",["MobileBertForMaskedLM",class extends hi{async _call(t){return new xo(await super._call(t))}}]],["squeezebert",["SqueezeBertForMaskedLM",class extends fi{async _call(t){return new xo(await super._call(t))}}]]]),Ys=new Map([["bert",["BertForQuestionAnswering",class extends ni{async _call(t){return new To(await super._call(t))}}]],["roformer",["RoFormerForQuestionAnswering",class extends ii{async _call(t){return new To(await super._call(t))}}]],["electra",["ElectraForQuestionAnswering",class extends oi{async _call(t){return new To(await super._call(t))}}]],["convbert",["ConvBertForQuestionAnswering",class extends si{async _call(t){return new To(await super._call(t))}}]],["camembert",["CamembertForQuestionAnswering",class extends ai{async _call(t){return new To(await super._call(t))}}]],["deberta",["DebertaForQuestionAnswering",class extends ui{async _call(t){return new To(await super._call(t))}}]],["deberta-v2",["DebertaV2ForQuestionAnswering",class extends li{async _call(t){return new To(await super._call(t))}}]],["mpnet",["MPNetForQuestionAnswering",class extends pi{async _call(t){return new To(await super._call(t))}}]],["albert",["AlbertForQuestionAnswering",class extends gi{async _call(t){return new To(await super._call(t))}}]],["distilbert",["DistilBertForQuestionAnswering",class extends ci{async _call(t){return new To(await super._call(t))}}]],["roberta",["RobertaForQuestionAnswering",class extends Ti{async _call(t){return new To(await super._call(t))}}]],["xlm",["XLMForQuestionAnswering",class extends Si{async _call(t){return new To(await super._call(t))}}]],["xlm-roberta",["XLMRobertaForQuestionAnswering",class extends Ai{async _call(t){return new To(await super._call(t))}}]],["mobilebert",["MobileBertForQuestionAnswering",class extends hi{async _call(t){return new To(await super._call(t))}}]],["squeezebert",["SqueezeBertForQuestionAnswering",class extends fi{async _call(t){return new To(await super._call(t))}}]]]),Ks=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",Ei]]]),Zs=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",Ei]]]),Js=new Map([["vit",["ViTForImageClassification",class extends qi{async _call(t){return new yo(await super._call(t))}}]],["mobilevit",["MobileViTForImageClassification",class extends Hi{async _call(t){return new yo(await super._call(t))}}]],["beit",["BeitForImageClassification",class extends Ki{async _call(t){return new yo(await super._call(t))}}]],["deit",["DeiTForImageClassification",class extends ns{async _call(t){return new yo(await super._call(t))}}]],["convnext",["ConvNextForImageClassification",class extends cs{async _call(t){return new yo(await super._call(t))}}]],["convnextv2",["ConvNextV2ForImageClassification",class extends ds{async _call(t){return new yo(await super._call(t))}}]],["dinov2",["Dinov2ForImageClassification",class extends hs{async _call(t){return new yo(await super._call(t))}}]],["resnet",["ResNetForImageClassification",class extends rs{async _call(t){return new yo(await super._call(t))}}]],["swin",["SwinForImageClassification",class extends is{async _call(t){return new yo(await super._call(t))}}]],["segformer",["SegformerForImageClassification",class extends Ms{}]],["efficientnet",["EfficientNetForImageClassification",class extends Ls{async _call(t){return new yo(await super._call(t))}}]]]),Qs=new Map([["detr",["DetrForObjectDetection",class extends Zi{async _call(t){return new Ji(await super._call(t))}}]],["table-transformer",["TableTransformerForObjectDetection",class extends ts{async _call(t){return new es(await super._call(t))}}]],["yolos",["YolosForObjectDetection",class extends ps{async _call(t){return new fs(await super._call(t))}}]]]),to=new Map([["owlvit",["OwlViTForObjectDetection",class extends Xi{}]],["owlv2",["Owlv2ForObjectDetection",class extends Yi{}]]]),eo=new Map([["detr",["DetrForSegmentation",class extends Zi{async _call(t){return new Qi(await super._call(t))}}]],["clipseg",["CLIPSegForImageSegmentation",class extends Ci{}]]]),no=new Map([["segformer",["SegformerForSemanticSegmentation",class extends Ms{}]]]),ro=new Map([["sam",["SamModel",class extends gs{constructor(t,e,n){super(t,e),this.prompt_encoder_mask_decoder=n}async get_image_embeddings({pixel_values:t}){return await Yr(this,{pixel_values:t})}async forward(t){if(t.image_embeddings&&t.image_positional_embeddings||(t={...t,...await this.get_image_embeddings(t)}),!t.input_labels){const e=t.input_points.dims.slice(0,-1),n=e.reduce(((t,e)=>t*e),1);t.input_labels=new nt("int64",new BigInt64Array(n).fill(1n),e)}return await jr(this.prompt_encoder_mask_decoder,{input_points:t.input_points,input_labels:t.input_labels,image_embeddings:t.image_embeddings,image_positional_embeddings:t.image_positional_embeddings})}async _call(t){return new ms(await super._call(t))}}]]]),io=new Map([["wav2vec2",["Wav2Vec2ForCTC",class extends ys{async _call(t){return new So(await super._call(t))}}]],["wav2vec2-bert",["Wav2Vec2BertForCTC",class extends xs{async _call(t){return new So(await super._call(t))}}]],["unispeech",["UniSpeechForCTC",class extends ws{async _call(t){return new So(await super._call(t))}}]],["unispeech-sat",["UniSpeechSatForCTC",class extends vs{async _call(t){return new So(await super._call(t))}}]],["wavlm",["WavLMForCTC",class extends Ts{async _call(t){return new So(await super._call(t))}}]],["hubert",["HubertForCTC",class extends ys{async _call(t){return new So(await super._call(t))}}]]]),so=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",class extends ys{async _call(t){return new yo(await super._call(t))}}]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",class extends xs{async _call(t){return new yo(await super._call(t))}}]],["unispeech",["UniSpeechForSequenceClassification",class extends ws{async _call(t){return new yo(await super._call(t))}}]],["unispeech-sat",["UniSpeechSatForSequenceClassification",class extends vs{async _call(t){return new yo(await super._call(t))}}]],["wavlm",["WavLMForSequenceClassification",class extends Ts{async _call(t){return new yo(await super._call(t))}}]],["hubert",["HubertForSequenceClassification",class extends ys{async _call(t){return new yo(await super._call(t))}}]],["audio-spectrogram-transformer",["ASTForAudioClassification",class extends ki{}]]]),oo=new Map([["wavlm",["WavLMForXVector",class extends Ts{async _call(t){return new wo(await super._call(t))}}]]]),ao=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",class extends vs{async _call(t){return new vo(await super._call(t))}}]],["wavlm",["WavLMForAudioFrameClassification",class extends Ts{async _call(t){return new vo(await super._call(t))}}]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",class extends ys{async _call(t){return new vo(await super._call(t))}}]]]),uo=new Map([["vitmatte",["VitMatteForImageMatting",class extends Wi{async _call(t){return new Ao(await super._call(t))}}]]]),lo=new Map([["swin2sr",["Swin2SRForImageSuperResolution",class extends ss{}]]]),co=new Map([["dpt",["DPTForDepthEstimation",class extends os{}]],["depth_anything",["DepthAnythingForDepthEstimation",class extends as{}]],["glpn",["GLPNForDepthEstimation",class extends us{}]]]),ho=new Map([["clip",["CLIPVisionModelWithProjection",class extends Ii{static async from_pretrained(t,e={}){return e.model_file_name??="vision_model",super.from_pretrained(t,e)}}]],["siglip",["SiglipVisionModel",class extends Ii{static async from_pretrained(t,e={}){return e.model_file_name??="vision_model",super.from_pretrained(t,e)}}]]]),po=[[Rs,0],[js,1],[zs,4],[Gs,0],[qs,0],[Ws,2],[Bs,2],[Hs,4],[Xs,0],[Ys,0],[Ks,3],[Js,0],[eo,0],[no,0],[uo,0],[lo,0],[co,0],[Qs,0],[to,0],[ro,5],[io,0],[so,0],[Us,2],[Vs,0],[oo,0],[ao,0],[ho,0]];for(const[t,e]of po)for(const[n,r]of t.values())Fr.set(n,e),Nr.set(r,n),Lr.set(n,r);const fo=[["CLIPTextModelWithProjection",class extends Ii{static async from_pretrained(t,e={}){return e.model_file_name??="text_model",super.from_pretrained(t,e)}},0],["SiglipTextModel",class extends Pi{static async from_pretrained(t,e={}){return e.model_file_name??="text_model",super.from_pretrained(t,e)}},0],["ClapTextModelWithProjection",class extends Ds{static async from_pretrained(t,e={}){return e.model_file_name??="text_model",super.from_pretrained(t,e)}},0],["ClapAudioModelWithProjection",class extends Ds{static async from_pretrained(t,e={}){return e.model_file_name??="audio_model",super.from_pretrained(t,e)}},0]];for(const[t,e,n]of fo)Fr.set(t,n),Nr.set(e,t),Lr.set(t,e);class go extends Ns{static MODEL_CLASS_MAPPINGS=po.map((t=>t[0]));static BASE_IF_FAIL=!0}class mo extends Ns{static MODEL_CLASS_MAPPINGS=[Gs]}class _o extends Ns{static MODEL_CLASS_MAPPINGS=[Ws]}class bo extends ei{constructor({logits:t,past_key_values:e,encoder_outputs:n,decoder_attentions:r=null,cross_attentions:i=null}){super(),this.logits=t,this.past_key_values=e,this.encoder_outputs=n,this.decoder_attentions=r,this.cross_attentions=i}}class yo extends ei{constructor({logits:t}){super(),this.logits=t}}class wo extends ei{constructor({logits:t,embeddings:e}){super(),this.logits=t,this.embeddings=e}}class vo extends ei{constructor({logits:t}){super(),this.logits=t}}class xo extends ei{constructor({logits:t}){super(),this.logits=t}}class To extends ei{constructor({start_logits:t,end_logits:e}){super(),this.start_logits=t,this.end_logits=e}}class So extends ei{constructor({logits:t}){super(),this.logits=t}}class Ao extends ei{constructor({alphas:t}){super(),this.alphas=t}}class ko extends ei{constructor({waveform:t,spectrogram:e}){super(),this.waveform=t,this.spectrogram=e}}var Oo=n(806);const Eo="undefined"!=typeof self,Io=Eo&&"DedicatedWorkerGlobalScope"===self.constructor.name;let Po,Do,Co;if(Eo)Po=(t,e)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(t,e)},Co=self.createImageBitmap,Do=self.ImageData;else{if(!Oo)throw new Error("Unable to load image processing library.");Co=async t=>{const e=(await t.metadata()).channels;let{data:n,info:r}=await t.raw().toBuffer({resolveWithObject:!0});const i=new Fo(new Uint8ClampedArray(n),r.width,r.height,r.channels);return void 0!==e&&e!==r.channels&&i.convert(e),i}}const $o={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},Mo=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class Fo{constructor(t,e,n,r){this.data=t,this.width=e,this.height=n,this.channels=r}get size(){return[this.width,this.height]}static async read(t){if(t instanceof Fo)return t;if("string"==typeof t||t instanceof URL)return await this.fromURL(t);throw new Error("Unsupported input type: "+typeof t)}static async fromURL(t){let e=await R(t);if(200!==e.status)throw new Error(`Unable to read image from "${t}" (${e.status} ${e.statusText})`);let n=await e.blob();return this.fromBlob(n)}static async fromBlob(t){if(Eo){let e=await Co(t);const n=Po(e.width,e.height).getContext("2d");return n.drawImage(e,0,0),new this(n.getImageData(0,0,e.width,e.height).data,e.width,e.height,4)}{let e=Oo(await t.arrayBuffer());return await Co(e)}}static fromTensor(t,e="CHW"){if(3!==t.dims.length)throw new Error(`Tensor should have 3 dimensions, but has ${t.dims.length} dimensions.`);if("CHW"===e)t=t.transpose(1,2,0);else if("HWC"!==e)throw new Error(`Unsupported channel format: ${e}`);if(!(t.data instanceof Uint8ClampedArray||t.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${t.type}`);switch(t.dims[2]){case 1:case 2:case 3:case 4:return new Fo(t.data,t.dims[1],t.dims[0],t.dims[2]);default:throw new Error(`Unsupported number of channels: ${t.dims[2]}`)}}grayscale(){if(1===this.channels)return this;let t=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let e=0,n=0;e<this.data.length;e+=this.channels){const r=this.data[e],i=this.data[e+1],s=this.data[e+2];t[n++]=Math.round(.2989*r+.587*i+.114*s)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(t,this.width,this.height,1)}rgb(){if(3===this.channels)return this;let t=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let e=0,n=0;e<this.data.length;++e)t[n++]=this.data[e],t[n++]=this.data[e],t[n++]=this.data[e];break;case 4:for(let e=0,n=0;e<this.data.length;e+=4)t[n++]=this.data[e],t[n++]=this.data[e+1],t[n++]=this.data[e+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(t,this.width,this.height,3)}rgba(){if(4===this.channels)return this;let t=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let e=0,n=0;e<this.data.length;++e)t[n++]=this.data[e],t[n++]=this.data[e],t[n++]=this.data[e],t[n++]=255;break;case 3:for(let e=0,n=0;e<this.data.length;e+=3)t[n++]=this.data[e],t[n++]=this.data[e+1],t[n++]=this.data[e+2],t[n++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(t,this.width,this.height,4)}async resize(t,e,{resample:n=2}={}){let r=$o[n]??n;if(Eo){let n=this.channels,r=this.toCanvas();const i=Po(t,e).getContext("2d");return i.drawImage(r,0,0,t,e),new Fo(i.getImageData(0,0,t,e).data,t,e,4).convert(n)}{let n=this.toSharp();switch(r){case"box":case"hamming":"box"!==r&&"hamming"!==r||(console.warn(`Resampling method ${r} is not yet supported. Using bilinear instead.`),r="bilinear");case"nearest":case"bilinear":case"bicubic":n=n.affine([t/this.width,0,0,e/this.height],{interpolator:r});break;case"lanczos":n=n.resize({width:t,height:e,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${r} is not supported.`)}return await Co(n)}}async pad([t,e,n,r]){if(t=Math.max(t,0),e=Math.max(e,0),n=Math.max(n,0),r=Math.max(r,0),0===t&&0===e&&0===n&&0===r)return this;if(Eo){let i=this.channels,s=this.toCanvas(),o=this.width+t+e,a=this.height+n+r;const u=Po(o,a).getContext("2d");return u.drawImage(s,0,0,this.width,this.height,t,n,o,a),new Fo(u.getImageData(0,0,o,a).data,o,a,4).convert(i)}{let i=this.toSharp().extend({left:t,right:e,top:n,bottom:r});return await Co(i)}}async crop([t,e,n,r]){if(t=Math.max(t,0),e=Math.max(e,0),n=Math.min(n,this.width-1),r=Math.min(r,this.height-1),0===t&&0===e&&n===this.width-1&&r===this.height-1)return this;const i=n-t+1,s=r-e+1;if(Eo){const n=this.channels,r=this.toCanvas(),o=Po(i,s).getContext("2d");return o.drawImage(r,t,e,i,s,0,0,i,s),new Fo(o.getImageData(0,0,i,s).data,i,s,4).convert(n)}{const n=this.toSharp().extract({left:t,top:e,width:i,height:s});return await Co(n)}}async center_crop(t,e){if(this.width===t&&this.height===e)return this;let n=(this.width-t)/2,r=(this.height-e)/2;if(Eo){let i=this.channels,s=this.toCanvas();const o=Po(t,e).getContext("2d");let a=0,u=0,l=0,c=0;return n>=0?a=n:l=-n,r>=0?u=r:c=-r,o.drawImage(s,a,u,t,e,l,c,t,e),new Fo(o.getImageData(0,0,t,e).data,t,e,4).convert(i)}{let i=this.toSharp();if(n>=0&&r>=0)i=i.extract({left:Math.floor(n),top:Math.floor(r),width:t,height:e});else if(n<=0&&r<=0){let s=Math.floor(-r),o=Math.floor(-n);i=i.extend({top:s,left:o,right:t-this.width-o,bottom:e-this.height-s})}else{let s=[0,0],o=0;r<0?(s[0]=Math.floor(-r),s[1]=e-this.height-s[0]):o=Math.floor(r);let a=[0,0],u=0;n<0?(a[0]=Math.floor(-n),a[1]=t-this.width-a[0]):u=Math.floor(n),i=i.extend({top:s[0],bottom:s[1],left:a[0],right:a[1]}).extract({left:u,top:o,width:t,height:e})}return await Co(i)}}async toBlob(t="image/png",e=1){if(!Eo)throw new Error("toBlob() is only supported in browser environments.");const n=this.toCanvas();return await n.convertToBlob({type:t,quality:e})}toTensor(t="CHW"){let e=new nt("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if("HWC"===t);else{if("CHW"!==t)throw new Error(`Unsupported channel format: ${t}`);e=e.permute(2,0,1)}return e}toCanvas(){if(!Eo)throw new Error("toCanvas() is only supported in browser environments.");let t=this.clone().rgba(),e=Po(t.width,t.height),n=new Do(t.data,t.width,t.height);return e.getContext("2d").putImageData(n,0,0),e}_update(t,e,n,r=null){return this.data=t,this.width=e,this.height=n,null!==r&&(this.channels=r),this}clone(){return new Fo(this.data.slice(),this.width,this.height,this.channels)}convert(t){if(this.channels===t)return this;switch(t){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(t){if(!Eo){if(M.useFS){const e=this.toSharp();return await e.toFile(t)}throw new Error("Unable to save the image because filesystem is disabled in this environment.")}{if(Io)throw new Error("Unable to save an image from a Web Worker.");const e=t.split(".").pop().toLowerCase(),n=Mo.get(e)??"image/png",r=await this.toBlob(n),i=URL.createObjectURL(r),s=document.createElement("a");s.href=i,s.download=t,s.click(),s.remove()}}toSharp(){if(Eo)throw new Error("toSharp() is only supported in server-side environments.");return Oo(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}function Lo(t){if(t<1)return new Float64Array;if(1===t)return new Float64Array([1]);const e=t-1,n=Math.PI/e,r=new Float64Array(t);for(let i=0;i<t;++i){const t=2*i-e;r[i]=.5+.5*Math.cos(n*t)}return r}const No={htk:t=>2595*Math.log10(1+t/700),kaldi:t=>1127*Math.log(1+t/700),slaney:(t,e=1e3,n=15,r=27/Math.log(6.4))=>t>=e?n+Math.log(t/e)*r:3*t/200};function Ro(t,e="htk"){const n=No[e];if(!n)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return"number"==typeof t?n(t):t.map((t=>n(t)))}const jo={htk:t=>700*(10**(t/2595)-1),kaldi:t=>700*(Math.exp(t/1127)-1),slaney:(t,e=1e3,n=15,r=Math.log(6.4)/27)=>t>=n?e*Math.exp(r*(t-n)):200*t/3};function zo(t,e,n){const r=(e-t)/(n-1);return Float64Array.from({length:n},((e,n)=>t+r*n))}function Bo(t,e,n,r,i,s=null,o="htk",a=!1){if(null!==s&&"slaney"!==s)throw new Error('norm must be one of null or "slaney"');const u=zo(Ro(n,o),Ro(r,o),e+2);let l,c=function(t,e="htk"){const n=jo[e];if(!n)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return"number"==typeof t?n(t):t.map((t=>n(t)))}(u,o);if(a){const e=i/(2*t);l=Ro(Float64Array.from({length:t},((t,n)=>n*e)),o),c=u}else l=zo(0,Math.floor(i/2),t);const d=function(t,e){const n=Float64Array.from({length:e.length-1},((t,n)=>e[n+1]-e[n])),r=Array.from({length:t.length},(()=>new Array(e.length)));for(let n=0;n<t.length;++n){const i=r[n];for(let r=0;r<e.length;++r)i[r]=e[r]-t[n]}const i=e.length-2,s=Array.from({length:i},(()=>new Array(t.length)));for(let e=0;e<t.length;++e){const t=r[e];for(let r=0;r<i;++r){const i=-t[r]/n[r],o=t[r+2]/n[r+1];s[r][e]=Math.max(0,Math.min(i,o))}}return s}(l,c);if(null!==s&&"slaney"===s)for(let n=0;n<e;++n){const e=d[n],r=2/(c[n+2]-c[n]);for(let n=0;n<t;++n)e[n]*=r}return d}function Uo(t,e,n,r,i){if(n<=0)throw new Error("reference must be greater than zero");if(r<=0)throw new Error("min_value must be greater than zero");n=Math.max(r,n);const s=Math.log10(n);for(let n=0;n<t.length;++n)t[n]=e*Math.log10(Math.max(r,t[n])-s);if(null!==i){if(i<=0)throw new Error("db_range must be greater than zero");const e=H(t)[0]-i;for(let n=0;n<t.length;++n)t[n]=Math.max(t[n],e)}return t}function Vo(t,e,n,r,{fft_length:i=null,power:s=1,center:o=!0,pad_mode:a="reflect",onesided:u=!0,preemphasis:l=null,mel_filters:c=null,mel_floor:h=1e-10,log_mel:p=null,reference:f=1,min_value:g=1e-10,db_range:m=null,remove_dc_offset:_=null,max_num_frames:b=null,do_pad:y=!0,transpose:w=!1}={}){const v=e.length;if(null===i&&(i=n),n>i)throw Error(`frame_length (${n}) may not be larger than fft_length (${i})`);if(v!==n)throw new Error(`Length of the window (${v}) must equal frame_length (${n})`);if(r<=0)throw new Error("hop_length must be greater than zero");if(o){if("reflect"!==a)throw new Error(`pad_mode="${a}" not implemented yet.`);const e=Math.floor((i-1)/2)+1;t=function(t,e,n){const r=new t.constructor(t.length+e+n),i=t.length-1;for(let n=0;n<t.length;++n)r[e+n]=t[n];for(let n=1;n<=e;++n)r[e-n]=t[d(n,i)];for(let s=1;s<=n;++s)r[i+e+s]=t[d(i-s,i)];return r}(t,e,e)}const x=Math.floor(1+Math.floor((t.length-n)/r)),T=u?Math.floor(i/2)+1:i;let S=x,A=x;null!==b&&(b>x?y&&(A=b):A=S=b);const k=new Z(i),O=new Float64Array(i),E=new Float64Array(k.outputBufferSize),I=new Array(S);for(let i=0;i<S;++i){const s=i*r;for(let e=0;e<n;++e)O[e]=t[s+e];if(_){let t=0;for(let e=0;e<n;++e)t+=O[e];const e=t/n;for(let t=0;t<n;++t)O[t]-=e}if(null!==l){for(let t=n-1;t>=1;--t)O[t]-=l*O[t-1];O[0]*=1-l}for(let t=0;t<e.length;++t)O[t]*=e[t];k.realTransform(E,O);const o=new Array(T);for(let t=0;t<o.length;++t){const e=t<<1;o[t]=E[e]**2+E[e+1]**2}I[i]=o}if(null!==s&&2!==s){const t=2/s;for(let e=0;e<I.length;++e){const n=I[e];for(let e=0;e<n.length;++e)n[e]**=t}}const P=c.length,D=new Float32Array(P*A),C=w?[A,P]:[P,A];for(let t=0;t<P;++t){const e=c[t];for(let n=0;n<S;++n){const r=I[n];let i=0;for(let t=0;t<T;++t)i+=e[t]*r[t];D[w?n*P+t:t*S+n]=Math.max(h,i)}}if(null!==s&&null!==p){const t=Math.min(D.length,S*P);switch(p){case"log":for(let e=0;e<t;++e)D[e]=Math.log(D[e]);break;case"log10":for(let e=0;e<t;++e)D[e]=Math.log10(D[e]);break;case"dB":if(1===s)!function(t,e=1,n=1e-5,r=null){Uo(t,20,e,n,r)}(D,f,g,m);else{if(2!==s)throw new Error(`Cannot use log_mel option '${p}' with power ${s}`);!function(t,e=1,n=1e-10,r=null){Uo(t,10,e,n,r)}(D,f,g,m)}break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${p}'`)}}return{data:D,dims:C}}function Go(t,e,{periodic:n=!0,frame_length:r=null,center:i=!0}={}){const s=n?t+1:t;let o;switch(e){case"boxcar":o=new Float64Array(s).fill(1);break;case"hann":case"hann_window":o=Lo(s);break;case"povey":o=Lo(s).map((t=>Math.pow(t,.85)));break;default:throw new Error(`Unknown window type ${e}.`)}if(n&&(o=o.subarray(0,t)),null===r)return o;if(t>r)throw new Error(`Length of the window (${t}) may not be larger than frame_length (${r})`);return o}function qo([t,e,n,r]){return[t-n/2,e-r/2,t+n/2,e+r/2]}function Wo(t,e=.5,n=null,r=!1){const i=t.logits,s=t.pred_boxes,[o,a,u]=i.dims;if(null!==n&&n.length!==o)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let l=[];for(let t=0;t<o;++t){let o=null!==n?n[t]:null,c={boxes:[],classes:[],scores:[]},d=i[t],h=s[t];for(let t=0;t<a;++t){let n,i=d[t],s=[];if(r){n=i.sigmoid().data;for(let t=0;t<n.length;++t)n[t]>e&&s.push(t)}else{let t=H(i.data)[1];if(t===u-1)continue;s.push(t),n=G(i.data)}for(const e of s){let r=h[t].data;r=qo(r),null!==o&&(r=r.map(((t,e)=>t*o[(e+1)%2]))),c.boxes.push(r),c.classes.push(e),c.scores.push(n[e])}}l.push(c)}return l}function Ho(t,e){if(!(t instanceof Float32Array||t instanceof Float64Array))throw new Error(`${e} expects input to be a Float32Array or a Float64Array, but got ${t?.constructor?.name??typeof t} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}function Xo(t,e,n=0,r=null){const i=t/e;let s=function(t){const e=Math.round(t);return Math.abs(t)%1==.5?e%2==0?e:e-1:e}(i)*e;return null!==r&&s>r&&(s=Math.floor(i)*e),s<n&&(s=Math.ceil(i)*e),s}function Yo([t,e],n){return[Math.max(Math.floor(t/n),1)*n,Math.max(Math.floor(e/n),1)*n]}class Ko extends s{constructor(t){super(),this.config=t}}class Zo extends Ko{constructor(t){super(t),this.image_mean=this.config.image_mean??this.config.mean,this.image_std=this.config.image_std??this.config.std,this.resample=this.config.resample??2,this.do_rescale=this.config.do_rescale??!0,this.rescale_factor=this.config.rescale_factor??1/255,this.do_normalize=this.config.do_normalize,this.do_resize=this.config.do_resize,this.do_thumbnail=this.config.do_thumbnail,this.size=this.config.size,this.size_divisibility=this.config.size_divisibility??this.config.size_divisor,this.do_center_crop=this.config.do_center_crop,this.crop_size=this.config.crop_size,this.do_convert_rgb=this.config.do_convert_rgb??!0,this.do_crop_margin=this.config.do_crop_margin,this.pad_size=this.config.pad_size,this.do_pad=this.config.do_pad,this.do_pad&&!this.pad_size&&this.size&&void 0!==this.size.width&&void 0!==this.size.height&&(this.pad_size=this.size)}async thumbnail(t,e,n=2){const r=t.height,i=t.width,s=e.height,o=e.width;let a=Math.min(r,s),u=Math.min(i,o);return a===r&&u===i?t:(r>i?u=Math.floor(i*a/r):i>r&&(a=Math.floor(r*u/i)),await t.resize(u,a,{resample:n}))}async crop_margin(t,e=200){const n=t.clone().grayscale(),r=W(n.data)[0],i=H(n.data)[0]-r;if(0===i)return t;const s=e/255;let o=n.width,a=n.height,u=0,l=0;for(let t=0;t<n.height;++t){const e=t*n.width;for(let c=0;c<n.width;++c)(n.data[e+c]-r)/i<s&&(o=Math.min(o,c),a=Math.min(a,t),u=Math.max(u,c),l=Math.max(l,t))}return await t.crop([o,a,u,l])}pad_image(t,e,n,{mode:r="constant",center:i=!1,constant_values:s=0}={}){const[o,a,u]=e;let l,c;if("number"==typeof n?(l=n,c=n):(l=n.width,c=n.height),l!==a||c!==o){const n=new Float32Array(l*c*u);if(Array.isArray(s))for(let t=0;t<n.length;++t)n[t]=s[t%u];else 0!==s&&n.fill(s);const[h,p]=i?[Math.floor((l-a)/2),Math.floor((c-o)/2)]:[0,0];for(let e=0;e<o;++e){const r=(e+p)*l,i=e*a;for(let e=0;e<a;++e){const s=(r+e+h)*u,o=(i+e)*u;for(let e=0;e<u;++e)n[s+e]=t[o+e]}}if("symmetric"===r){if(i)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");const e=o-1,r=a-1;for(let i=0;i<c;++i){const s=i*l,c=d(i,e)*a;for(let e=0;e<l;++e){if(i<o&&e<a)continue;const l=(s+e)*u,h=(c+d(e,r))*u;for(let e=0;e<u;++e)n[l+e]=t[h+e]}}}t=n,e=[c,l,u]}return[t,e]}rescale(t){for(let e=0;e<t.length;++e)t[e]=this.rescale_factor*t[e]}get_resize_output_image_size(t,e){const[n,r]=t.size;let i,s;if(this.do_thumbnail){const{height:t,width:n}=e;i=Math.min(t,n)}else Number.isInteger(e)?(i=e,s=this.config.max_size??i):void 0!==e&&(i=e.shortest_edge,s=e.longest_edge);if(void 0!==i||void 0!==s){const t=void 0===i?1:Math.max(i/n,i/r),e=n*t,o=r*t,a=void 0===s?1:Math.min(s/e,s/o);let u=Math.floor(Number((e*a).toFixed(2))),l=Math.floor(Number((o*a).toFixed(2)));return void 0!==this.size_divisibility&&([u,l]=Yo([u,l],this.size_divisibility)),[u,l]}if(void 0!==e&&void 0!==e.width&&void 0!==e.height){let t=e.width,i=e.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let e=i/r,s=t/n;Math.abs(1-s)<Math.abs(1-e)?e=s:s=e,i=Xo(e*r,this.config.ensure_multiple_of),t=Xo(s*n,this.config.ensure_multiple_of)}return[t,i]}if(void 0!==this.size_divisibility)return Yo([n,r],this.size_divisibility);throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(e)}`)}async resize(t){const[e,n]=this.get_resize_output_image_size(t,this.size);return await t.resize(e,n,{resample:this.resample})}async preprocess(t,{do_normalize:e=null,do_pad:n=null,do_convert_rgb:r=null,do_convert_grayscale:i=null}={}){this.do_crop_margin&&(t=await this.crop_margin(t));const[s,o]=t.size;if(r??this.do_convert_rgb?t=t.rgb():i&&(t=t.grayscale()),this.do_resize&&(t=await this.resize(t)),this.do_thumbnail&&(t=await this.thumbnail(t,this.size,this.resample)),this.do_center_crop){let e,n;Number.isInteger(this.crop_size)?(e=this.crop_size,n=this.crop_size):(e=this.crop_size.width,n=this.crop_size.height),t=await t.center_crop(e,n)}const a=[t.height,t.width];let u=Float32Array.from(t.data),l=[t.height,t.width,t.channels];if(this.do_rescale&&this.rescale(u),e??this.do_normalize){let e=this.image_mean;Array.isArray(this.image_mean)||(e=new Array(t.channels).fill(e));let n=this.image_std;if(Array.isArray(this.image_std)||(n=new Array(t.channels).fill(e)),e.length!==t.channels||n.length!==t.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${e.length}) and \`image_std\` (${n.length}) must match the number of channels in the image (${t.channels}).`);for(let r=0;r<u.length;r+=t.channels)for(let i=0;i<t.channels;++i)u[r+i]=(u[r+i]-e[i])/n[i]}if(n??this.do_pad)if(this.pad_size){const e=this.pad_image(u,[t.height,t.width,t.channels],this.pad_size);[u,l]=e}else if(this.size_divisibility){const[t,e]=Yo([l[1],l[0]],this.size_divisibility);[u,l]=this.pad_image(u,l,{width:t,height:e})}return{original_size:[o,s],reshaped_input_size:a,pixel_values:new nt("float32",u,l).permute(2,0,1)}}async _call(t,...e){Array.isArray(t)||(t=[t]);const n=await Promise.all(t.map((t=>this.preprocess(t))));return{pixel_values:ut(n.map((t=>t.pixel_values)),0),original_sizes:n.map((t=>t.original_size)),reshaped_input_sizes:n.map((t=>t.reshaped_input_size))}}}class Jo extends Zo{post_process_semantic_segmentation(t,e=null){const n=t.logits,r=n.dims[0];if(null!==e&&e.length!==r)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const i=[];for(let t=0;t<r;++t){const r=null!==e?e[t]:null;let s=n[t];null!==r&&(s=rt(s,r,"bilinear",!1));const[o,a]=r??s.dims.slice(-2),u=new nt("int32",new Int32Array(o*a),[o,a]),l=s[0].data;for(let t=1;t<s.dims[0];++t){const e=s[t].data;for(let n=0;n<e.length;++n)e[n]>l[n]&&(l[n]=e[n],u.data[n]=t)}const c=new Array(s.dims[0]),d=u.data;for(let t=0;t<d.length;++t){const e=d[t];c[e]=e}const h=c.filter((t=>void 0!==t));i.push({segmentation:u,labels:h})}return i}}class Qo extends Zo{}class ta extends Qo{}class ea extends Zo{}class na extends Zo{}class ra extends Zo{}class ia extends Zo{}class sa extends Zo{}class oa extends Zo{constructor(t){super(t),this.crop_pct=this.config.crop_pct??.875}async resize(t){const e=this.size?.shortest_edge;if(void 0===e)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(e<384){const n=Math.floor(e/this.crop_pct),[r,i]=this.get_resize_output_image_size(t,{shortest_edge:n});t=await t.resize(r,i,{resample:this.resample}),t=await t.center_crop(e,e)}else t=await t.resize(e,e,{resample:this.resample});return t}}class aa extends oa{}class ua extends Zo{}class la extends Zo{}class ca extends Zo{constructor(t){super(t),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map((t=>t*t)))}}class da extends Zo{}class ha extends Zo{post_process_object_detection(...t){return Wo(...t)}}class pa extends ha{}class fa extends Zo{}class ga extends Zo{}class ma extends Zo{pad_image(t,e,n,r={}){const[i,s,o]=e;let a=this.image_mean;Array.isArray(this.image_mean)||(a=new Array(o).fill(a));let u=this.image_std;Array.isArray(u)||(u=new Array(o).fill(a));const l=a.map(((t,e)=>-t/u[e]));return super.pad_image(t,e,n,{center:!0,constant_values:l,...r})}}class _a extends ma{}class ba extends Zo{async _call(t){const e=await super._call(t),n=[e.pixel_values.dims[0],64,64],r=new nt("int64",new BigInt64Array(n.reduce(((t,e)=>t*e))).fill(1n),n);return{...e,pixel_mask:r}}post_process_object_detection(...t){return Wo(...t)}remove_low_and_no_objects(t,e,n,r){let i=[],s=[],o=[];for(let a=0;a<t.dims[0];++a){let u=t[a],l=e[a],c=H(u.data)[1];if(c===r)continue;let d=G(u.data)[c];d>n&&(i.push(l),s.push(d),o.push(c))}return[i,s,o]}check_segment_validity(t,e,n,r=.5,i=.8){let s=[],o=0,a=0;for(let i=0;i<t.length;++i)t[i]===n&&(s.push(i),++o),e[n].data[i]>=r&&++a;let u=o>0&&a>0;return u&&(u=o/a>i),[u,s]}compute_segments(t,e,n,r,i,s=null,o=null){let[a,u]=o??t[0].dims,l=new nt("int32",new Int32Array(a*u),[a,u]),c=[];if(null!==o)for(let e=0;e<t.length;++e)t[e]=rt(t[e],o,"bilinear",!1);let d=new Int32Array(t[0].data.length),h=new Float32Array(t[0].data.length);for(let n=0;n<t.length;++n){let r=e[n];for(let e=0;e<t[n].data.length;++e)t[n].data[e]*=r,t[n].data[e]>h[e]&&(d[e]=n,h[e]=t[n].data[e])}let p=0;for(let s=0;s<n.length;++s){let o=n[s],[a,u]=this.check_segment_validity(d,t,s,r,i);if(a){++p;for(let t of u)l.data[t]=p;c.push({id:p,label_id:o,score:e[s]})}}return[l,c]}post_process_panoptic_segmentation(t,e=.5,n=.5,r=.8,i=null,s=null){null===i&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),i=new Set);const o=t.logits,a=t.pred_masks.sigmoid();let[u,l,c]=o.dims;if(c-=1,null!==s&&s.length!==u)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let d=[];for(let t=0;t<u;++t){let u=null!==s?s[t]:null,l=o[t],h=a[t],[p,f,g]=this.remove_low_and_no_objects(l,h,e,c);if(0===g.length){let[t,e]=u??h.dims.slice(-2),n=new nt("int32",new Int32Array(t*e).fill(-1),[t,e]);d.push({segmentation:n,segments_info:[]});continue}let[m,_]=this.compute_segments(p,f,g,n,r,i,u);d.push({segmentation:m,segments_info:_})}return d}post_process_instance_segmentation(){throw Error("Not implemented yet")}}class ya extends Zo{post_process_object_detection(...t){return Wo(...t)}}class wa extends Zo{reshape_input_points(t,e,n){let r=a(t=structuredClone(t));if(3===r.length)r=[1,...r],t=[t];else if(4!==r.length)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let r=0;r<t.length;++r){let i=e[r],s=n[r],o=[s[0]/i[0],s[1]/i[1]];for(let e=0;e<t[r].length;++e)for(let n=0;n<t[r][e].length;++n)for(let i=0;i<t[r][e][n].length;++i)t[r][e][n][i]*=o[i]}return new nt("float32",Float32Array.from(t.flat(1/0)),r)}add_input_labels(t,e){let n=a(t);if(2===n.length)n=[1,...n],t=[t];else if(3!==n.length)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(n.some(((t,n)=>t!==e.dims[n])))throw Error(`The first ${n.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new nt("int64",t.flat(1/0).map(BigInt),n)}async _call(t,e=null,n=null){const r=await super._call(t);if(e&&(r.input_points=this.reshape_input_points(e,r.original_sizes,r.reshaped_input_sizes)),n){if(!r.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");r.input_labels=this.add_input_labels(n,r.input_points)}return r}post_process_masks(t,e,n,{mask_threshold:r=0,binarize:i=!0,pad_size:s=null}={}){const o=[],a=[(s=s??this.pad_size).height,s.width];for(let s=0;s<e.length;++s){const u=e[s],l=n[s],c=t[s],d=[];for(let t=0;t<c.dims[0];++t){let e=rt(c[t],a,"bilinear",!1);if(e=e.slice(null,[0,l[0]],[0,l[1]]),e=rt(e,u,"bilinear",!1),i){const t=new Uint8Array(e.data.length);for(let n=0;n<e.data.length;++n)e.data[n]>r&&(t[n]=1);e=new nt("bool",t,e.dims)}d.push(e)}o.push(ut(d))}return o}}class va extends Zo{pad_image(t,e,n,r={}){const[i,s,o]=e;return super.pad_image(t,e,{width:s+(n-s%n)%n,height:i+(n-i%n)%n},{mode:"symmetric",center:!1,constant_values:-1,...r})}}class xa extends Zo{async _call(t,e){Array.isArray(t)||(t=[t]),Array.isArray(e)||(e=[e]);const n=await Promise.all(t.map((t=>this.preprocess(t)))),r=await Promise.all(e.map((t=>this.preprocess(t,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0}))));return{pixel_values:ut(n.map(((t,e)=>at([t.pixel_values,r[e].pixel_values],0))),0),original_sizes:n.map((t=>t.original_size)),reshaped_input_sizes:n.map((t=>t.reshaped_input_size))}}}class Ta extends Ko{constructor(t){super(t),this.config.mel_filters??=Bo(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=Go(this.config.n_fft,"hann")}_extract_fbank_features(t){const{data:e,dims:n}=Vo(t,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:this.config.nb_max_frames}),r=H(e)[0];for(let t=0;t<e.length;++t)e[t]=(Math.max(e[t],r-8)+4)/4;return{data:e,dims:n}}async _call(t){let e;Ho(t,"WhisperFeatureExtractor"),t.length>this.config.n_samples?(console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),e=t.slice(0,this.config.n_samples)):(e=new Float32Array(this.config.n_samples),e.set(t));const{data:n,dims:r}=this._extract_fbank_features(e);return{input_features:new nt("float32",n,[1,...r])}}}class Sa extends Ko{_zero_mean_unit_var_norm(t){const e=t.reduce(((t,e)=>t+e),0)/t.length,n=t.reduce(((t,n)=>t+(n-e)**2),0)/t.length;return t.map((t=>(t-e)/Math.sqrt(n+1e-7)))}async _call(t){Ho(t,"Wav2Vec2FeatureExtractor"),t instanceof Float64Array&&(t=new Float32Array(t));let e=t;this.config.do_normalize&&(e=this._zero_mean_unit_var_norm(e));const n=[1,e.length];return{input_values:new nt("float32",e,n),attention_mask:new nt("int64",new BigInt64Array(e.length).fill(1n),n)}}}class Aa extends Ko{constructor(t){super(t);const e=this.config.sampling_rate,n=Bo(256,this.config.num_mel_bins,20,Math.floor(e/2),e,null,"kaldi",!0);for(let t=0;t<n.length;++t)n[t].push(0);this.mel_filters=n,this.window=Go(400,"povey",{periodic:!1})}_extract_fbank_features(t,e){return Vo(t=t.map((t=>32768*t)),this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1.192092955078125e-7,remove_dc_offset:!0,max_num_frames:e,transpose:!0})}async _call(t,{padding:e=!0,pad_to_multiple_of:n=2,do_normalize_per_mel_bins:r=!0,return_attention_mask:i=!0}={}){Ho(t,"SeamlessM4TFeatureExtractor");let s,o=this._extract_fbank_features(t,this.config.max_length);if(r){const[t,e]=o.dims;for(let n=0;n<e;++n){let r=0;for(let i=0;i<t;++i)r+=o.data[i*e+n];const i=r/t;let s=0;for(let r=0;r<t;++r)s+=(o.data[r*e+n]-i)**2;s/=t-1;const a=Math.sqrt(s+1e-7);for(let r=0;r<t;++r){const t=r*e+n;o.data[t]=(o.data[t]-i)/a}}}if(e){const[t,e]=o.dims,r=t%n;if(r>0){const n=new Float32Array(e*(t+r));n.set(o.data),n.fill(this.config.padding_value,o.data.length);const a=t+r;o={data:n,dims:[a,e]},i&&(s=new nt("int64",new BigInt64Array(a),[1,a]),s.data.fill(1n,0,t))}}const[a,u]=o.dims,l=this.config.stride;if(0!=a%l)throw new Error(`The number of frames (${a}) must be a multiple of the stride (${l}).`);const c=new nt("float32",o.data,o.dims).view(1,Math.floor(a/l),u*l),d={input_features:c};if(i){const t=c.dims[1],e=new nt("int64",new BigInt64Array(t),[1,t]);if(s)for(let t=1,n=0;t<a;t+=l,++n)e.data[n]=s.data[t];else e.data.fill(1n);d.attention_mask=e}return d}}class ka extends Ko{constructor(t){super(t);const e=this.config.sampling_rate,n=Bo(256,this.config.num_mel_bins,20,Math.floor(e/2),e,null,"kaldi",!0);for(let t=0;t<n.length;++t)n[t].push(0);this.mel_filters=n,this.window=Go(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}_extract_fbank_features(t,e){return Vo(t,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1.192092955078125e-7,remove_dc_offset:!0,max_num_frames:e,transpose:!0})}async _call(t){Ho(t,"ASTFeatureExtractor");const e=this._extract_fbank_features(t,this.config.max_length);if(this.config.do_normalize){const t=2*this.std;for(let n=0;n<e.data.length;++n)e.data[n]=(e.data[n]-this.mean)/t}return{input_values:new nt("float32",e.data,[1,...e.dims])}}}class Oa extends Ko{constructor(t){super(t),this.mel_filters=Bo(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=Bo(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=Go(this.config.fft_window_size,"hann")}_get_input_mel(t,e,n,r){let i,s=!1;const o=t.length-e;if(o>0){if("rand_trunc"!==n)throw new Error(`Truncation strategy "${n}" not implemented`);{s=!0;const n=Math.floor(Math.random()*(o+1));t=t.subarray(n,n+e),i=this._extract_fbank_features(t,this.mel_filters_slaney,this.config.nb_max_samples),i.dims=[1,...i.dims]}}else{if(o<0){let n=new Float64Array(e);if(n.set(t),"repeat"===r)for(let r=t.length;r<e;r+=t.length)n.set(t.subarray(0,Math.min(t.length,e-r)),r);else if("repeatpad"===r)for(let e=t.length;e<-o;e+=t.length)n.set(t,e);t=n}if("fusion"===n)throw new Error(`Truncation strategy "${n}" not implemented`);i=this._extract_fbank_features(t,this.mel_filters_slaney,this.config.nb_max_samples),i.dims=[1,...i.dims]}return{...i,longer:s}}_extract_fbank_features(t,e,n=null){return Vo(t,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:e,log_mel:"dB",max_num_frames:n,do_pad:!1,transpose:!0})}async _call(t,{max_length:e=null}={}){Ho(t,"ClapFeatureExtractor");const n=this._get_input_mel(t,e??this.config.nb_max_samples,this.config.truncation,this.config.padding);return{input_features:new nt("float32",n.data,[1,...n.dims])}}}class Ea extends Ko{}class Ia extends s{constructor(t){super(),this.feature_extractor=t}async _call(t,...e){return await this.feature_extractor(t,...e)}}class Pa extends Ia{async _call(...t){return await this.feature_extractor(...t)}post_process_masks(...t){return this.feature_extractor.post_process_masks(...t)}reshape_input_points(...t){return this.feature_extractor.reshape_input_points(...t)}}class Da extends Ia{async _call(t){return await this.feature_extractor(t)}}class Ca extends Ia{async _call(t){return await this.feature_extractor(t)}}class $a extends Ia{async _call(t){return await this.feature_extractor(t)}}class Ma extends Ia{}class Fa{static FEATURE_EXTRACTOR_CLASS_MAPPING={ImageFeatureExtractor:Zo,WhisperFeatureExtractor:Ta,ViTFeatureExtractor:ua,MobileViTFeatureExtractor:da,OwlViTFeatureExtractor:ha,Owlv2ImageProcessor:pa,CLIPFeatureExtractor:ra,ChineseCLIPFeatureExtractor:ia,SiglipImageProcessor:sa,ConvNextFeatureExtractor:oa,ConvNextImageProcessor:aa,SegformerFeatureExtractor:Jo,BitImageProcessor:ea,DPTImageProcessor:ta,DPTFeatureExtractor:Qo,GLPNFeatureExtractor:na,BeitFeatureExtractor:ga,DeiTFeatureExtractor:fa,DetrFeatureExtractor:ba,YolosFeatureExtractor:ya,DonutFeatureExtractor:ma,NougatImageProcessor:_a,EfficientNetImageProcessor:ca,ViTImageProcessor:la,VitMatteImageProcessor:xa,SamImageProcessor:wa,Swin2SRImageProcessor:va,Wav2Vec2FeatureExtractor:Sa,SeamlessM4TFeatureExtractor:Aa,SpeechT5FeatureExtractor:Ea,ASTFeatureExtractor:ka,ClapFeatureExtractor:Oa};static PROCESSOR_CLASS_MAPPING={WhisperProcessor:Da,Wav2Vec2ProcessorWithLM:Ca,SamProcessor:Pa,SpeechT5Processor:$a,OwlViTProcessor:Ma};static async from_pretrained(t,{progress_callback:e=null,config:n=null,cache_dir:r=null,local_files_only:i=!1,revision:s="main"}={}){let o=n??await U(t,"preprocessor_config.json",!0,{progress_callback:e,config:n,cache_dir:r,local_files_only:i,revision:s}),a=o.feature_extractor_type??o.image_processor_type,u=this.FEATURE_EXTRACTOR_CLASS_MAPPING[a];if(!u){if(void 0===o.size)throw new Error(`Unknown Feature Extractor type: ${a}`);console.warn(`Feature extractor type "${a}" not found, assuming ImageFeatureExtractor due to size parameter in config.`),u=Zo}return new(this.PROCESSOR_CLASS_MAPPING[o.processor_class]??Ia)(new u(o))}}async function La(t){return Array.isArray(t)||(t=[t]),await Promise.all(t.map((t=>Fo.read(t))))}async function Na(t,e){return Array.isArray(t)||(t=[t]),await Promise.all(t.map((t=>"string"==typeof t||t instanceof URL?async function(t,e){if("undefined"==typeof AudioContext)throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");const n=await(await R(t)).arrayBuffer(),r=new AudioContext({sampleRate:e});void 0===e&&console.warn(`No sampling rate provided, using default of ${r.sampleRate}Hz.`);const i=await r.decodeAudioData(n);let s;if(2===i.numberOfChannels){const t=Math.sqrt(2),e=i.getChannelData(0),n=i.getChannelData(1);s=new Float32Array(e.length);for(let r=0;r<i.length;++r)s[r]=t*(e[r]+n[r])/2}else s=i.getChannelData(0);return s}(t,e):t instanceof Float64Array?new Float32Array(t):t)))}function Ra(t,e){e&&(t=t.map((t=>0|t)));const[n,r,i,s]=t;return{xmin:n,ymin:r,xmax:i,ymax:s}}class ja extends s{constructor({task:t,model:e,tokenizer:n=null,processor:r=null}){super(),this.task=t,this.model=e,this.tokenizer=n,this.processor=r}async dispose(){await this.model.dispose()}}class za extends ja{_key="generated_text";constructor(t){super(t)}async _call(t,e={}){Array.isArray(t)||(t=[t]),this.model.config.prefix&&(t=t.map((t=>this.model.config.prefix+t)));const n=this.model.config.task_specific_params;n&&n[this.task]&&n[this.task].prefix&&(t=t.map((t=>n[this.task].prefix+t)));const r=this.tokenizer,i={padding:!0,truncation:!0};let s;s=this instanceof Ba&&"_build_translation_inputs"in r?r._build_translation_inputs(t,i,e).input_ids:r(t,i).input_ids;const o=await this.model.generate(s,e);return r.batch_decode(o,{skip_special_tokens:!0}).map((t=>({[this._key]:t})))}}class Ba extends za{_key="translation_text";constructor(t){super(t)}}Object.freeze({"text-classification":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,{topk:e=1}={}){const n=this.tokenizer(t,{padding:!0,truncation:!0}),r=await this.model(n),i="multi_label_classification"===this.model.config.problem_type?t=>t.sigmoid().data:t=>G(t.data),s=this.model.config.id2label,o=[];for(const t of r.logits){const n=q(i(t),e).map((t=>({label:s[t[0]],score:t[1]})));1===e?o.push(...n):o.push(n)}return Array.isArray(t)||1===e?o:o[0]}},model:mo,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,{ignore_labels:e=["O"]}={}){const n=Array.isArray(t),r=this.tokenizer(n?t:[t],{padding:!0,truncation:!0}),i=(await this.model(r)).logits,s=this.model.config.id2label,o=[];for(let t=0;t<i.dims[0];++t){const n=r.input_ids[t],a=i[t],u=[];for(let t=0;t<a.dims[0];++t){const r=a[t],i=H(r.data)[1],o=s?s[i]:`LABEL_${i}`;if(e.includes(o))continue;const l=this.tokenizer.decode([n[t].item()],{skip_special_tokens:!0});if(""===l)continue;const c=G(r.data);u.push({entity:o,score:c[i],index:t,word:l,start:null,end:null})}o.push(u)}return n?o:o[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[qs]},default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e,{topk:n=1}={}){const r=this.tokenizer(t,{text_pair:e,padding:!0,truncation:!0}),i=await this.model(r),s=[];for(let t=0;t<i.start_logits.dims[0];++t){const e=r.input_ids[t],o=e.indexOf(this.tokenizer.sep_token_id),a=c(Array.from(G(i.start_logits[t].data)).map(((t,e)=>[t,e])).filter((t=>t[1]>o)),Array.from(G(i.end_logits[t].data)).map(((t,e)=>[t,e])).filter((t=>t[1]>o))).filter((t=>t[0][1]<=t[1][1])).map((t=>[t[0][1],t[1][1],t[0][0]*t[1][0]])).sort(((t,e)=>e[2]-t[2]));for(let t=0;t<Math.min(a.length,n);++t){const[n,r,i]=a[t],o=[...e].slice(n,r+1),u=this.tokenizer.decode(o,{skip_special_tokens:!0});s.push({answer:u,score:i})}}return 1===n?s[0]:s}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Ys]},default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,{topk:e=5}={}){const n=this.tokenizer(t,{padding:!0,truncation:!0}),r=await this.model(n),i=[];for(let t=0;t<n.input_ids.dims[0];++t){const s=n.input_ids[t],o=s.indexOf(this.tokenizer.mask_token_id);if(-1===o)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const a=q(G(r.logits[t][o].data),e);i.push(a.map((t=>{const e=[...s];return e[o]=t[0],{score:t[1],token:t[0],token_str:this.tokenizer.model.vocab[t[0]],sequence:this.tokenizer.decode(e,{skip_special_tokens:!0})}})))}return Array.isArray(t)?i:i[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Xs]},default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:hr,pipeline:class extends za{_key="summary_text";constructor(t){super(t)}},model:_o,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:hr,pipeline:Ba,model:_o,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:hr,pipeline:za,model:_o,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e={}){const n=Array.isArray(t);n||(t=[t]);const r=e.add_special_tokens??!1;this.tokenizer.padding_side="left";const{input_ids:i,attention_mask:s}=this.tokenizer(t,{add_special_tokens:r,padding:!0,truncation:!0}),o=await this.model.generate(i,e,null,{inputs_attention_mask:s}),a=this.tokenizer.batch_decode(o,{skip_special_tokens:!0}),u=Array.from({length:t.length},(t=>[]));for(let e=0;e<a.length;++e)u[Math.floor(e/o.length*t.length)].push({generated_text:a[e]});return n||1!==u.length?u:u[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Hs]},default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map((([t,e])=>[t.toLowerCase(),e]))),this.entailment_id=this.label2id.entailment,void 0===this.entailment_id&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,void 0===this.contradiction_id&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(t,e,{hypothesis_template:n="This example is {}.",multi_label:r=!1}={}){const i=Array.isArray(t);i||(t=[t]),Array.isArray(e)||(e=[e]);const s=e.map((t=>n.replace("{}",t))),o=r||1===e.length,a=[];for(const n of t){const t=[];for(const e of s){const r=this.tokenizer(n,{text_pair:e,padding:!0,truncation:!0}),i=await this.model(r);o?t.push([i.logits.data[this.contradiction_id],i.logits.data[this.entailment_id]]):t.push(i.logits.data[this.entailment_id])}const r=(o?t.map((t=>G(t)[1])):G(t)).map(((t,e)=>[t,e])).sort(((t,e)=>e[0]-t[0]));a.push({sequence:n,labels:r.map((t=>e[t[1]])),scores:r.map((t=>t[0]))})}return i?a:a[0]}},model:mo,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:class extends ja{constructor(t){super(t)}async _call(t,{topk:e=null}={}){const n=!Array.isArray(t),r=this.processor.feature_extractor.config.sampling_rate,i=await Na(t,r),s=this.model.config.id2label,o=[];for(const t of i){const n=await this.processor(t),r=q(G((await this.model(n)).logits[0].data),e).map((t=>({label:s[t[0]],score:t[1]})));1===e?o.push(...r):o.push(r)}return n&&1!==e?o[0]:o}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[so]},processor:Fa,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e,{hypothesis_template:n="This is a sound of {}."}={}){const r=!Array.isArray(t);r&&(t=[t]);const i=e.map((t=>n.replace("{}",t))),s=this.tokenizer(i,{padding:!0,truncation:!0}),o=this.processor.feature_extractor.config.sampling_rate,a=await Na(t,o),u=[];for(const t of a){const n=await this.processor(t),r=G((await this.model({...s,...n})).logits_per_audio.data);u.push([...r].map(((t,n)=>({score:t,label:e[n]}))))}return r?u[0]:u}},model:go,processor:Fa,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e={}){switch(this.model.config.model_type){case"whisper":return this._call_whisper(t,e);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(t,e);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(t,e={}){e.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),e.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const n=!Array.isArray(t);n&&(t=[t]);const r=this.processor.feature_extractor.config.sampling_rate,i=await Na(t,r),s=[];for(const t of i){const e=await this.processor(t),n=(await this.model(e)).logits[0],r=[];for(const t of n)r.push(H(t.data)[1]);const i=this.tokenizer.decode(r);s.push({text:i})}return n?s[0]:s}async _call_whisper(t,e={}){const n=e.return_timestamps??!1,r=e.chunk_length_s??0,i=e.chunk_callback??null,s=e.force_full_sequences??!1;let o=e.stride_length_s??null;"word"===n&&(e.return_token_timestamps=!0);const a=u(e,"language",null),l=u(e,"task",null);if(a||l||n){if(e.forced_decoder_ids)throw new Error("Cannot specify `language`/`task`/`return_timestamps` and `forced_decoder_ids` at the same time.");const t=this.tokenizer.get_decoder_prompt_ids({language:a,task:l,no_timestamps:!n});t.length>0&&(e.forced_decoder_ids=t)}const c=!Array.isArray(t);c&&(t=[t]);const d=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,h=this.processor.feature_extractor.config.hop_length,p=this.processor.feature_extractor.config.sampling_rate,f=await Na(t,p),g=[];for(const t of f){let a=[];if(r>0){if(null===o)o=r/6;else if(r<=o)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const e=p*r,n=p*o,i=e-2*n;let s=0;for(;s<t.length;){const r=t.subarray(s,s+e),o=await this.processor(r),u=0===s,l=s+i>=t.length;a.push({stride:[r.length,u?0:n,l?0:n],input_features:o.input_features,is_last:l}),s+=i}}else a=[{stride:[t.length,0,0],input_features:(await this.processor(t)).input_features,is_last:!0}];for(const t of a){e.num_frames=Math.floor(t.stride[0]/h);const r=await this.model.generate(t.input_features,e);"word"===n?(t.tokens=r.sequences[0],t.token_timestamps=r.token_timestamps.tolist()[0].map((t=>Q(t,2)))):t.tokens=r[0],t.stride=t.stride.map((t=>t/p)),null!==i&&i(t)}const[u,l]=this.tokenizer._decode_asr(a,{time_precision:d,return_timestamps:n,force_full_sequences:s});g.push({text:u,...l})}return c?g[0]:g}},model:[class extends Ns{static MODEL_CLASS_MAPPINGS=[Bs]},class extends Ns{static MODEL_CLASS_MAPPINGS=[io]}],processor:Fa,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:hr,pipeline:class extends ja{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(t){super(t),this.vocoder=t.vocoder??null}async _call(t,{speaker_embeddings:e=null}={}){return this.processor?this._call_text_to_spectrogram(t,{speaker_embeddings:e}):this._call_text_to_waveform(t)}async _call_text_to_waveform(t){const e=this.tokenizer(t,{padding:!0,truncation:!0}),{waveform:n}=await this.model(e),r=this.model.config.sampling_rate;return{audio:n.data,sampling_rate:r}}async _call_text_to_spectrogram(t,{speaker_embeddings:e}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await go.from_pretrained(this.DEFAULT_VOCODER_ID,{quantized:!1})),("string"==typeof e||e instanceof URL)&&(e=new Float32Array(await(await fetch(e)).arrayBuffer())),e instanceof Float32Array)e=new nt("float32",e,[1,e.length]);else if(!(e instanceof nt))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:n}=this.tokenizer(t,{padding:!0,truncation:!0}),{waveform:r}=await this.model.generate_speech(n,e,{vocoder:this.vocoder}),i=this.processor.feature_extractor.config.sampling_rate;return{audio:r.data,sampling_rate:i}}},model:[class extends Ns{static MODEL_CLASS_MAPPINGS=[Vs]},class extends Ns{static MODEL_CLASS_MAPPINGS=[Us]}],processor:[Fa,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e={}){const n=Array.isArray(t),r=await La(t),{pixel_values:i}=await this.processor(r),s=[];for(const t of i){t.dims=[1,...t.dims];const n=await this.model.generate(t,e),r=this.tokenizer.batch_decode(n,{skip_special_tokens:!0}).map((t=>({generated_text:t.trim()})));s.push(r)}return n?s:s[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Ks]},processor:Fa,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:class extends ja{constructor(t){super(t)}async _call(t,{topk:e=1}={}){const n=Array.isArray(t),r=await La(t),{pixel_values:i}=await this.processor(r),s=await this.model({pixel_values:i}),o=this.model.config.id2label,a=[];for(const t of s.logits){const n=q(G(t.data),e).map((t=>({label:o[t[0]],score:t[1]})));1===e?a.push(...n):a.push(n)}return n||1===e?a:a[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Js]},processor:Fa,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:class extends ja{constructor(t){super(t),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(t,{threshold:e=.5,mask_threshold:n=.5,overlap_mask_area_threshold:r=.8,label_ids_to_fuse:i=null,target_sizes:s=null,subtask:o=null}={}){if(Array.isArray(t)&&1!==t.length)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const a=await La(t),u=a.map((t=>[t.height,t.width])),{pixel_values:l,pixel_mask:c}=await this.processor(a),d=await this.model({pixel_values:l,pixel_mask:c});let h=null;if(null!==o)h=this.subtasks_mapping[o];else for(let[t,e]of Object.entries(this.subtasks_mapping))if(e in this.processor.feature_extractor){h=this.processor.feature_extractor[e].bind(this.processor.feature_extractor),o=t;break}const p=this.model.config.id2label,f=[];if("panoptic"===o||"instance"===o){const t=h(d,e,n,r,i,s??u)[0],o=t.segmentation;for(const e of t.segments_info){const t=new Uint8ClampedArray(o.data.length);for(let n=0;n<o.data.length;++n)o.data[n]===e.id&&(t[n]=255);const n=new Fo(t,o.dims[1],o.dims[0],1);f.push({score:e.score,label:p[e.label_id],mask:n})}}else{if("semantic"!==o)throw Error(`Subtask ${o} not supported.`);{const{segmentation:t,labels:e}=h(d,s??u)[0];for(const n of e){const e=new Uint8ClampedArray(t.data.length);for(let r=0;r<t.data.length;++r)t.data[r]===n&&(e[r]=255);const r=new Fo(e,t.dims[1],t.dims[0],1);f.push({score:null,label:p[n],mask:r})}}}return f}},model:[class extends Ns{static MODEL_CLASS_MAPPINGS=[eo]},class extends Ns{static MODEL_CLASS_MAPPINGS=[no]}],processor:Fa,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"zero-shot-image-classification":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e,{hypothesis_template:n="This is a photo of {}"}={}){const r=Array.isArray(t),i=await La(t),s=e.map((t=>n.replace("{}",t))),o=this.tokenizer(s,{padding:"siglip"!==this.model.config.model_type||"max_length",truncation:!0}),{pixel_values:a}=await this.processor(i),u=await this.model({...o,pixel_values:a}),l="siglip"===this.model.config.model_type?t=>t.sigmoid().data:t=>G(t.data),c=[];for(const t of u.logits_per_image){const n=[...l(t)].map(((t,n)=>({score:t,label:e[n]})));n.sort(((t,e)=>e.score-t.score)),c.push(n)}return r?c:c[0]}},model:go,processor:Fa,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:class extends ja{constructor(t){super(t)}async _call(t,{threshold:e=.9,percentage:n=!1}={}){const r=Array.isArray(t);if(r&&1!==t.length)throw Error("Object detection pipeline currently only supports a batch size of 1.");const i=await La(t),s=n?null:i.map((t=>[t.height,t.width])),{pixel_values:o,pixel_mask:a}=await this.processor(i),u=await this.model({pixel_values:o,pixel_mask:a}),l=this.processor.feature_extractor.post_process_object_detection(u,e,s),c=this.model.config.id2label,d=l.map((t=>t.boxes.map(((e,r)=>({score:t.scores[r],label:c[t.classes[r]],box:Ra(e,!n)})))));return r?d:d[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Qs]},processor:Fa,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e,{threshold:n=.1,topk:r=null,percentage:i=!1}={}){const s=Array.isArray(t),o=await La(t),a=this.tokenizer(e,{padding:!0,truncation:!0}),u=await this.processor(o),l=[];for(let t=0;t<o.length;++t){const s=o[t],c=i?null:[[s.height,s.width]],d=u.pixel_values[t].unsqueeze_(0),h=await this.model({...a,pixel_values:d}),p=this.processor.feature_extractor.post_process_object_detection(h,n,c,!0)[0];let f=p.boxes.map(((t,n)=>({score:p.scores[n],label:e[p.classes[n]],box:Ra(t,!i)}))).sort(((t,e)=>e.score-t.score));null!==r&&(f=f.slice(0,r)),l.push(f)}return s?l:l[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[to]},processor:Fa,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,e,n={}){const r=(await La(t))[0],{pixel_values:i}=await this.processor(r),s=`<s_docvqa><s_question>${e}</s_question><s_answer>`,o=this.tokenizer(s,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,a=await this.model.generate(i,{...n,decoder_input_ids:o,max_length:this.model.config.decoder.max_position_embeddings}),u=this.tokenizer.batch_decode(a)[0].match(/<s_answer>(.*?)<\/s_answer>/);let l=null;return u&&u.length>=2&&(l=u[1].trim()),[{answer:l}]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[Zs]},processor:Fa,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:class extends ja{constructor(t){super(t)}async _call(t){const e=await La(t),n=await this.processor(e),r=await this.model(n),i=[];for(const t of r.reconstruction){const e=t.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");i.push(Fo.fromTensor(e))}return i.length>1?i:i[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[lo]},processor:Fa,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:class extends ja{constructor(t){super(t)}async _call(t){const e=await La(t),n=await this.processor(e),{predicted_depth:r}=await this.model(n),i=[];for(let t=0;t<e.length;++t){const n=rt(r[t],e[t].size.reverse(),"bilinear",!1),s=n.mul_(255/H(n.data)[0]).to("uint8");i.push({predicted_depth:r[t],depth:Fo.fromTensor(s)})}return i.length>1?i:i[0]}},model:class extends Ns{static MODEL_CLASS_MAPPINGS=[co]},processor:Fa,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:hr,pipeline:class extends ja{constructor(t){super(t)}async _call(t,{pooling:e="none",normalize:n=!1}={}){const r=this.tokenizer(t,{padding:!0,truncation:!0}),i=await this.model(r);let s=i.last_hidden_state??i.logits;if("none"===e);else if("mean"===e)s=function(t,e){let n=[t.dims[0],t.dims[2]],r=new t.data.constructor(n[0]*n[1]),[i,s,o]=t.dims,a=0;for(let n=0;n<i;++n){let i=n*o*s;for(let u=0;u<o;++u){let l=0,c=0,d=n*s,h=i+u;for(let n=0;n<s;++n){let r=Number(e.data[d+n]);c+=r,l+=t.data[h+n*o]*r}let p=l/c;r[a++]=p}}return new nt(t.type,r,n)}(s,r.attention_mask);else{if("cls"!==e)throw Error(`Pooling method '${e}' not supported.`);s=s.slice(null,0)}return n&&(s=s.normalize(2,-1)),s}},model:go,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:Fa,pipeline:class extends ja{constructor(t){super(t)}async _call(t,{pool:e=null}={}){const n=await La(t),{pixel_values:r}=await this.processor(n),i=await this.model({pixel_values:r});let s;if(e){if(!("pooler_output"in i))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");s=i.pooler_output}else s=i.last_hidden_state??i.logits??i.image_embeds;return s}},model:[class extends Ns{static MODEL_CLASS_MAPPINGS=[ho]},go],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"})}}]);