{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

-- | This file is generated by "plutus-preprocessor:plutus-preprocessor"
module Test.Cardano.Ledger.Plutus.Examples (
  alwaysSucceedsNoDatum,
  alwaysSucceedsWithDatum,
  alwaysFailsNoDatum,
  alwaysFailsWithDatum,
  redeemerSameAsDatum,
  evenDatum,
  evenRedeemerNoDatum,
  evenRedeemerWithDatum,
  purposeIsWellformedNoDatum,
  purposeIsWellformedWithDatum,
  datumIsWellformed,
  inputsOutputsAreNotEmptyNoDatum,
  inputsOutputsAreNotEmptyWithDatum,
  inputsOverlapsWithRefInputs,
) where

import Cardano.Ledger.Plutus.Language (Plutus (..), PlutusBinary (..), SLanguage (..))
import Data.ByteString (ByteString)
import qualified Data.ByteString.Base16 as Base16 (decode)
import qualified Data.ByteString.Short as SBS (toShort)
import GHC.Stack

decodeHexPlutus :: HasCallStack => ByteString -> Plutus l
decodeHexPlutus :: forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus = ([Char] -> Plutus l)
-> (ByteString -> Plutus l) -> Either [Char] ByteString -> Plutus l
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either [Char] -> Plutus l
forall a. HasCallStack => [Char] -> a
error (PlutusBinary -> Plutus l
forall (l :: Language). PlutusBinary -> Plutus l
Plutus (PlutusBinary -> Plutus l)
-> (ByteString -> PlutusBinary) -> ByteString -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShortByteString -> PlutusBinary
PlutusBinary (ShortByteString -> PlutusBinary)
-> (ByteString -> ShortByteString) -> ByteString -> PlutusBinary
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ShortByteString
SBS.toShort) (Either [Char] ByteString -> Plutus l)
-> (ByteString -> Either [Char] ByteString)
-> ByteString
-> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Either [Char] ByteString
Base16.decode

-- | Script that always succeeds, unless arguments are malformed or context contains a datum
alwaysSucceedsNoDatum :: SLanguage l -> Plutus l
alwaysSucceedsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysSucceedsNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "3f284e451d67e2c2ed1b255d253a58c1810cce58cde329ad04f3bc92"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_3 -> case scriptPurpose_3 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004584480041"
      ]
    -- ScriptHash "f610f0bf10e7d6607e34074a162db1b98965dd322c23e2754a7eec0c"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_3 -> case scriptPurpose_3 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004584480041"
      ]
    -- ScriptHash "4e9db3dc0d211bd9b8c958b7fd3969c6224226c84d52a1e09f0ea25f"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsNoDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                    scriptInfo_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                  in PlutusTx.Prelude.check GHC.Base.$ (case scriptInfo_4 of
    --                                                                        {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                         (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                         _ -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58bf0101002532333573464a666ae68cdc3a40046aae7400464c8cc88cc94ccd5cd19b88003480004c01924103"
      , ByteString
"5054360013300100380194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080040026aae74004d55cf0009baa357426ae88d55cf000c92"
      , ByteString
"852885289baa932328009aba10029aba10019aba135744002357440026aae78dd5001488800429309800a48103"
      , ByteString
"50543500232633573800300001"
      ]
    -- ScriptHash "b9c620f0276889c6573e987c322342924d97c8ec4bee83593aef999d"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsNoDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                    scriptInfo_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                  in PlutusTx.Prelude.check GHC.Base.$ (case scriptInfo_4 of
    --                                                                        {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                         (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                         _ -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58bf0101002532333573464a666ae68cdc3a40046aae7400464c8cc88cc94ccd5cd19b88003480004c01924103"
      , ByteString
"5054360013300100380194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080040026aae74004d55cf0009baa357426ae88d55cf000c92"
      , ByteString
"852885289baa932328009aba10029aba10019aba135744002357440026aae78dd5001488800429309800a48103"
      , ByteString
"50543500232633573800300001"
      ]

-- | Script that always succeeds, unless arguments are malformed or context does not contain a datum
alwaysSucceedsWithDatum :: SLanguage l -> Plutus l
alwaysSucceedsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysSucceedsWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "bf97f02604ffd780f1d72d535d60dbcd40e941577e8865f51c311478"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                 {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58260100002225333573466e1d200235573a6ea8d5d09aba235573c6ea80044480044c8d40040059"
      ]
    -- ScriptHash "32c1100dea60b653233e32adb33e20d9a30c8359f7072027ec3e00a0"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                 {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58260100002225333573466e1d200235573a6ea8d5d09aba235573c6ea80044480044c8d40040059"
      ]
    -- ScriptHash "5eac0376e2d041e1753d8a5a5f133d4fcdb69ac40c8030bad97bc3ad"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsWithDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                      (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                      scriptPurpose_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                    in PlutusTx.Prelude.check GHC.Base.$ (case scriptPurpose_4 of
    --                                                                          {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                           (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                           _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58bf0101002532333573464a666ae68cdc3a40046aae7400464c8cc88cc94ccd5cd19b88003480004c01924103"
      , ByteString
"5054360013300100380194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080040026aae74004d55cf0009baa357426ae88d55cf000c92"
      , ByteString
"8d2805281baa932328009aba10029aba10019aba135744002357440026aae78dd5001488800429309800a48103"
      , ByteString
"50543500232633573800300001"
      ]
    -- ScriptHash "dd4d8b97cfe1fef9d93cefb219d0d29689caa714a9acc9a432fa571e"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsWithDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                      (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                      scriptPurpose_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                    in PlutusTx.Prelude.check GHC.Base.$ (case scriptPurpose_4 of
    --                                                                          {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                           (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                           _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58bf0101002532333573464a666ae68cdc3a40046aae7400464c8cc88cc94ccd5cd19b88003480004c01924103"
      , ByteString
"5054360013300100380194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080040026aae74004d55cf0009baa357426ae88d55cf000c92"
      , ByteString
"8d2805281baa932328009aba10029aba10019aba135744002357440026aae78dd5001488800429309800a48103"
      , ByteString
"50543500232633573800300001"
      ]

-- | Script that always fails, unless arguments are malformed or context contains a datum
alwaysFailsNoDatum :: SLanguage l -> Plutus l
alwaysFailsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysFailsNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "b85a057b2c91b4c2984a77a5dd10afe15a404687825324ba58ad07f5"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of
    --                                             {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                              GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of
    --                                                                                                        {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004448004581"
      ]
    -- ScriptHash "02f4fe174ec961b3cc942ab15baa193a266ea4560a28690dd78d975d"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of
    --                                             {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                              GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of
    --                                                                                                        {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5821010000225333573466e1d200235573a6ea8d5d09aba235573c6ea8004448004581"
      ]
    -- ScriptHash "d17097dcd2e7298f8050fa045e9ea045c443d3af574099fd2c3813f4"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                 {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                 (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                 scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                                                                                                   _ -> GHC.Types.False};
    --                                                                  GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58aa0101002532333573464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c0152410350"
      , ByteString
"54360013300100280194004d5d0800b003280160001918008009114800cc01d2410350543700912999ab9a3370"
      , ByteString
"e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c928d280"
      , ByteString
"5281baa357426ae88d5d11aab9e375400429309800a4810350543500232633573800300001"
      ]
    -- ScriptHash "9c34883e72eb93d6ec4f6fc325a15270538f4c798694d20fc899fe8b"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                 {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                 (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                 scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                                                                                                   _ -> GHC.Types.False};
    --                                                                  GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58aa0101002532333573464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c0152410350"
      , ByteString
"54360013300100280194004d5d0800b003280160001918008009114800cc01d2410350543700912999ab9a3370"
      , ByteString
"e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c928d280"
      , ByteString
"5281baa357426ae88d5d11aab9e375400429309800a4810350543500232633573800300001"
      ]

-- | Script that always fails, unless arguments are malformed or context does not contain a datum
alwaysFailsWithDatum :: SLanguage l -> Plutus l
alwaysFailsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysFailsWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "4d21fdf22b322b92f116190ded13f1a2f5e8eae550af556a2c3898fc"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of
    --                                                       {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                        GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of
    --                                                                                                               {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of
    --                                                                                                                                                                          {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58210100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800458448005"
      ]
    -- ScriptHash "aade2c5c9e32ea7a8f9c284d3e958fbabe9f4838ef6bdd665b43d9d6"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of
    --                                                       {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                        GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of
    --                                                                                                               {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of
    --                                                                                                                                                                          {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58210100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800458448005"
      ]
    -- ScriptHash "fe06a34d1d485bd8a21b83a980ba663e9ceba5ff3f782e7b43e9c757"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                   {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                   (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                   scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                    {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                     (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                                     _ -> GHC.Types.True};
    --                                                                    GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58aa0101002532333573464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c0152410350"
      , ByteString
"54360013300100280194004d5d0800b003280160001918008009114800cc01d2410350543700912999ab9a3370"
      , ByteString
"e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c9285288"
      , ByteString
"5289baa357426ae88d5d11aab9e375400429309800a4810350543500232633573800300001"
      ]
    -- ScriptHash "134610f2ab49e9f57bed9797a5605236b323d5bf61d533fbbf94d9a9"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                   {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                   (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                   scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                    {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                     (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                                     _ -> GHC.Types.True};
    --                                                                    GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58aa0101002532333573464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c0152410350"
      , ByteString
"54360013300100280194004d5d0800b003280160001918008009114800cc01d2410350543700912999ab9a3370"
      , ByteString
"e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c9285288"
      , ByteString
"5289baa357426ae88d5d11aab9e375400429309800a4810350543500232633573800300001"
      ]

-- | Script that succeeds whenever redeemer equals to the datum
-- Fails on malformed arguments
redeemerSameAsDatum :: SLanguage l -> Plutus l
redeemerSameAsDatum :: forall (l :: Language). SLanguage l -> Plutus l
redeemerSameAsDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "8434e5ac35b5faf73a6f48cfaeb75d946149d15ebcac279993761fe5"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                      {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.== d_4 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58310100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19baf002003112001161"
      , ByteString
"323500100161"
      ]
    -- ScriptHash "b2cde39d731e1a641e3efab1fe83d09e77dde65ee50848d18107f039"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                      {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.== d_4 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58310100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19baf002003112001161"
      , ByteString
"323500100161"
      ]
    -- ScriptHash "709ed1e9554b38acc0ad0eb8fbc14847d6fe3b8e710a2a11d1a0b39c"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                   (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> datum_4 PlutusTx.Eq.== redeemer_3;
    --                                                                   _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58b3010100253233357346464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c01924103"
      , ByteString
"5054360013300100280194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c8cdd7"
      , ByteString
"8009aba1003a500a5037546ae84d5d10009aba235573c6ea800852613001490103505435002326335738003000"
      , ByteString
"01"
      ]
    -- ScriptHash "2af82f67d14401419594b15791a9b6cd71927359bd83cd9f322d2673"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                   (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> datum_4 PlutusTx.Eq.== redeemer_3;
    --                                                                   _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58b3010100253233357346464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c01924103"
      , ByteString
"5054360013300100280194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c8cdd7"
      , ByteString
"8009aba1003a500a5037546ae84d5d10009aba235573c6ea800852613001490103505435002326335738003000"
      , ByteString
"01"
      ]

-- | Script that succeeds whenever Integer datum is supplied and it's value is even.
-- Fails on malformed arguments
evenDatum :: SLanguage l -> Plutus l
evenDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "48b29a063768bc21d0e6eeed6e3e4f23a174164f8e8252c8845daceb"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                            {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                               {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                               (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00"
      , ByteString
"348010448004584c8d40040059"
      ]
    -- ScriptHash "a1741f496dd45f8ce84db15246ee75a663914bce6807a14ee9a543bc"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                            {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                               {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                               (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00"
      , ByteString
"348010448004584c8d40040059"
      ]
    -- ScriptHash "acd6e72aa28151b8a9527c742475bb96601ca44711c1d8cb01a6601c"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                        {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                        _redeemer_3
    --                                                                                                        (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                         (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.== 0})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58bd0101002532333573464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c0152410350"
      , ByteString
"54360013300100280194004d5d0800b003280160001918008009114800cc01d2410350543700912999ab9a3370"
      , ByteString
"e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c8cdc3a4"
      , ByteString
"00066e18dd6800a400932900180098265200300131baa357426ae88d5d11aab9e375400429309800a481035054"
      , ByteString
"3500232633573800300001"
      ]
    -- ScriptHash "82d6046ef0fce690415684c09513a5e3cb6ec22f86845fff4ca9d430"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                        {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                        _redeemer_3
    --                                                                                                        (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                         (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.== 0})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58bd0101002532333573464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c0152410350"
      , ByteString
"54360013300100280194004d5d0800b003280160001918008009114800cc01d2410350543700912999ab9a3370"
      , ByteString
"e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c8cdc3a4"
      , ByteString
"00066e18dd6800a400932900180098265200300131baa357426ae88d5d11aab9e375400429309800a481035054"
      , ByteString
"3500232633573800300001"
      ]

-- | Script that succeeds whenever Integer redeemer is supplied and it's value is even
-- Fails on malformed arguments or whenever datum is present in the context
evenRedeemerNoDatum :: SLanguage l -> Plutus l
evenRedeemerNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenRedeemerNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "ff651f4b89881b72407d020292291809ed49e4f1757a9745e35498c1"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                              {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_4 -> case scriptPurpose_4 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.== 0
    --                                                                                                                                                                    then GHC.Tuple.Prim.()
    --                                                                                                                                                                    else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5833010000225333573466e1d200235573a6ea8d5d09aba235573c6ea80045854ccd5cd19b8748000cdc31bad0"
      , ByteString
"0248010448004581"
      ]
    -- ScriptHash "5dae481efaf96e0c4203cf261dc16bda7e91171afc69c655ff623a66"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                              {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_4 -> case scriptPurpose_4 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.== 0
    --                                                                                                                                                                    then GHC.Tuple.Prim.()
    --                                                                                                                                                                    else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5833010000225333573466e1d200235573a6ea8d5d09aba235573c6ea80045854ccd5cd19b8748000cdc31bad0"
      , ByteString
"0248010448004581"
      ]
    -- ScriptHash "2f7dc5ea3191b1a56836f1547ed58d2af1f1917b784333e8332938c9"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  scriptInfo_4 -> case scriptInfo_4 of
    --                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                   _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.== 0}})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58c1010100253233357346464a64666ae68cdc3a40046aae7400864c8c8cc94ccd5cd19b88002480004c01d241"
      , ByteString
"035054360013300100280194004d5d0800b003280160001918008009114800cc0252410350543700912999ab9a"
      , ByteString
"3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf0014928"
      , ByteString
"4c0052609800a4c466e1d20003370c6eb4d5d0801a40086ea8d5d09aba2001357446aae78dd50010a4c2600292"
      , ByteString
"010350543500232633573800300001"
      ]
    -- ScriptHash "9f83efc6981b7c761bd519ec7f9c30ca90d99aa4c3d4ff70f9d5e8a2"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  scriptInfo_4 -> case scriptInfo_4 of
    --                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                   _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.== 0}})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58c1010100253233357346464a64666ae68cdc3a40046aae7400864c8c8cc94ccd5cd19b88002480004c01d241"
      , ByteString
"035054360013300100280194004d5d0800b003280160001918008009114800cc0252410350543700912999ab9a"
      , ByteString
"3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf0014928"
      , ByteString
"4c0052609800a4c466e1d20003370c6eb4d5d0801a40086ea8d5d09aba2001357446aae78dd50010a4c2600292"
      , ByteString
"010350543500232633573800300001"
      ]

-- | Script that succeeds whenever Integer redeemer is supplied and it's value is even
-- Fails on malformed arguments or whenever datum is missing from the context
evenRedeemerWithDatum :: SLanguage l -> Plutus l
evenRedeemerWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenRedeemerWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "ce2c6a09fd9706d2fa13bad68d83b9bee1e59423a9e8b4eb291c089c"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                        {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00"
      , ByteString
"248010448004584c8d40040059"
      ]
    -- ScriptHash "9c542eaf9fbd625c5ff40fe4eedbd1b415fa5edf73c679fc9d5aca32"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                        {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58380100002225333573466e1d200235573a6ea8d5d09aba235573c6ea800454ccd5cd19b8748000cdc31bad00"
      , ByteString
"248010448004584c8d40040059"
      ]
    -- ScriptHash "9e2cea9225060fd0338cd1727e556f64ea1cb34ef53aaaa1632723fd"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                    {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                    (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                     (GHC.Maybe.Just _)) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.== 0;
    --                                                                     _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58ba010100253233357346464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c01924103"
      , ByteString
"5054360013300100280194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c8cdc3"
      , ByteString
"a400066e18dd69aba1003480129402940dd51aba1357440026ae88d55cf1baa00214984c005241035054350023"
      , ByteString
"2633573800300001"
      ]
    -- ScriptHash "348c5f8a2b1a1ea2797e37f1eb109ee639c900736fb1f6176430a01f"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                    {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                    (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                     (GHC.Maybe.Just _)) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.== 0;
    --                                                                     _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"58ba010100253233357346464a666ae68cdc3a40046aae7400464c8c8cc94ccd5cd19b88002480004c01924103"
      , ByteString
"5054360013300100280194004d5d0800b003280160001918008009114800cc0212410350543700912999ab9a33"
      , ByteString
"70e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000c8cdc3"
      , ByteString
"a400066e18dd69aba1003480129402940dd51aba1357440026ae88d55cf1baa00214984c005241035054350023"
      , ByteString
"2633573800300001"
      ]

-- | Script that succeeds when datum is not expected and purpose arguments are validated against txInfo
-- Fails on malformed arguments
purposeIsWellformedNoDatum :: SLanguage l -> Plutus l
purposeIsWellformedNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
purposeIsWellformedNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "80cecc689f438b344917845205137d6e102dcae622420aeaa1d73011"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                  {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                  scriptPurpose_5 -> case scriptPurpose_5 of
    --                                                                                                                                                                     {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoMint txInfo_4)
    --                                                                                                                                                                                                                        then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                        else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((stakingCredential_7 PlutusTx.Eq.==) GHC.Base.. Data.Tuple.fst) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoWdrl txInfo_4)
    --                                                                                                                                                                                                                                         then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         else GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.==) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoDCert txInfo_4)
    --                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                              else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"59051c0100003232323232323232332222323232532323232333573466e1d20000011533357346646002002466"
      , ByteString
"0249408ccd5cd19baf37526eb8d5d09aab9e00735573a00249448cc00c00c004ccc008018888888888801c9840"
      , ByteString
"4c5854ccd5cd19b87480080045854ccd5cd19b874801000454ccd5cd1aba33333010233005375400244666a00c"
      , ByteString
"66a01a4664424660020060046ae84004dd69aba13574400201c00400246a0024466e95200033574000466ae80d"
      , ByteString
"d4000a5eb808cc040d5d09aab9e006350012200233300200622222222220052616101315333573466e1d200600"
      , ByteString
"11533357346ae8ccccc040800480048c8c94c8ccd5cd19b8748000d55ce8010992999ab9a3370e90001aab9d00"
      , ByteString
"1133014357426aae7800cd5d09aab9e00113002498dd500209800a4c4a64666ae68cdc3a40046aae7400c4c94c"
      , ByteString
"cd5cd19b8748008d55ce80089980a9aba135573c0086ae84d55cf0008980124c6ea80144c00526232333012005"
      , ByteString
"22333014008225333573466032008004266e3c00c0045281180224c460049311919980a0031119980b00491299"
      , ByteString
"9ab9a3371e008004266e3c00c0045281180224c460049311919980b0039119980c005112999ab9a3371e008004"
      , ByteString
"266e1c00c0045281180224c46004931299199ab9a3370e90051aab9d00715333573466e1d200a35573a6ea8024"
      , ByteString
"52889800a4c260029312999ab9a3370e90061aab9d00713370e90061aab9d37540122940dd50009aba135573c0"
      , ByteString
"0c66600400c444444444400c4c2c20262646a002002c6aae74010888c8c8c8c8c8c8c8c8c8cccccccccc02cdd6"
      , ByteString
"1aba100937586ae84020dd59aba100737566ae84018dd61aba100537586ae84010d5d08019bac357420046eb0d"
      , ByteString
"5d0800998071baa357426ae8800488ccd403ccd40588dd71aba1001017002001357440026ae88004d5d10009ab"
      , ByteString
"a2001357440026ae88004d5d10009aba200135573c6ea800c4c8894ccd5cd19b88001480004c04924103505436"
      , ByteString
"00133003001002323001001222533500113012490103505437002215333573466e1d2000004100213323300600"
      , ByteString
"600133702008900100091198009aab9d00235573c0046ea8d5d09aba2002357420026aae78dd50008910010910"
      , ByteString
"9119800802001911192999ab9a3370e90021aab9d00113233004357420026eb8d5d09aba200135573c00226004"
      , ByteString
"931baa003222325333573466e1d200635573a002264660086eb8d5d08009bae357426ae88004d55cf000898012"
      , ByteString
"4c6ea800c888c94ccd5cd19b8748020d55ce800899198021bae357420026eb4d5d09aba200135573c002260049"
      , ByteString
"31baa0032232532333573466e1d200035573a004264a666ae68cdc3a40006aae740044c8c94c8ccd5cd19b8748"
      , ByteString
"000d55ce8010992999ab9a3370e90001aab9d00113371e6eb8d5d09aab9e003375c6ae84d55cf0008980124c6e"
      , ByteString
"a800c4c0052625333573466e1d200235573a004264a666ae68cdc3a40046aae740044cdc79bae357426aae7800"
      , ByteString
"cdd71aba135573c0022940dd50018a5037546ae84d55cf0021aba135573c00226004931baa003130014988cc8c"
      , ByteString
"c004014888ccc01001c8894ccd5cd19b8700600315333573466e1c0140084cdc38020008a5014a04940888c94c"
      , ByteString
"cd5cd19b8748008d55ce800899191998029bad357420046eb4d5d08009bad357426ae88004d5d10009aab9e001"
      , ByteString
"13002498dd50019250375400444464460040026460020024466600c97ae0223253335734600c00226466ae80c0"
      , ByteString
"20008004cc0140140084cc014014008c01c0080048894ccd55cf80088018998011aba100135744002464c66ae7"
      , ByteString
"000400848005"
      ]
    -- ScriptHash "84166eecfa9f1a575868b2586c71f5e3137d763894c88f37c61b9d84"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                  {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                  scriptPurpose_5 -> case scriptPurpose_5 of
    --                                                                                                                                                                     {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoMint txInfo_4)
    --                                                                                                                                                                                                                        then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                        else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.AssocMap.member stakingCredential_7 GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoWdrl txInfo_4
    --                                                                                                                                                                                                                                         then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.==) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoDCert txInfo_4)
    --                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                              else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5904c601000032323232323232322232323253232333573466e1d2000001153335734666018ea4dd71aba13557"
      , ByteString
"3c0066660040084444444444440104c201e2c2a666ae68cdc3a40040022c2a666ae68cdc3a40080022a666ae68"
      , ByteString
"ccc0308004d5d09aab9e00333300200422222222222200626100f161325333573466e1d20060021533357346ae"
      , ByteString
"8cc004ccc00c01488888888888801c985840404c8d40040058c8c00400488ccc03d2f5c044a666ae68c8c94c8c"
      , ByteString
"cd5cd19b8748000d55ce8010992999ab9a3370e90001aab9d001133010357426aae7800cd5d09aab9e00113002"
      , ByteString
"498dd500289800a4c4a64666ae68cdc3a40046aae7400c4c94ccd5cd19b8748008d55ce8008998089aba135573"
      , ByteString
"c0086ae84d55cf0008980124c6ea80184c005262323330120052233301400922533357346602a008004266e3c0"
      , ByteString
"0c0045281180224c460049311919980a0031119980b005112999ab9a3371e008004266e3c00c0045281180224c"
      , ByteString
"460049311919980b0039119980c005912999ab9a3371e008004266e1c00c0045281180224c46004931299199ab"
      , ByteString
"9a3370e90051aab9d00715333573466e1d200a35573a6ea802852889800a4c260029312999ab9a3370e90061aa"
      , ByteString
"b9d00713370e90061aab9d37540142940dd50009aba135573c00e266ae80008cc0100100044cc010010004004d"
      , ByteString
"55ce80111119191919191919191919191999999999998069bac357420166eb0d5d08051bac357420126eacd5d0"
      , ByteString
"8041bab3574200e6eb0d5d08031bab3574200a6ae84010dd61aba100337566ae84008dd59aba10013232332533"
      , ByteString
"3573466e2000920001301d49010350543600133001002122330012375c6ae84004488008c8c0040048894cd400"
      , ByteString
"44c07d240103505437002215333573466e1d200000410021332330060060013370200890010009aab9e0023557"
      , ByteString
"3a0026ea8d5d09aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20013574400"
      , ByteString
"26ae88004d55cf1baa00337546ae84d5d10011aba100135573c6ea800488c94c8ccd5cd19b8748000d55ce8010"
      , ByteString
"992999ab9a3370e90001aab9d00113232532333573466e1d200035573a004264a666ae68cdc3a40006aae74004"
      , ByteString
"4cdc79bae357426aae7800cdd71aba135573c00226004931baa0031300149894ccd5cd19b8748008d55ce80109"
      , ByteString
"92999ab9a3370e90011aab9d00113371e6eb8d5d09aab9e003375c6ae84d55cf0008a5037540062940dd51aba1"
      , ByteString
"35573c0086ae84d55cf0008980124c6ea800c4c005262332330010052223330040072225333573466e1c01800c"
      , ByteString
"54ccd5cd19b8700500213370e00800229405281250222325333573466e1d200235573a0022646466600a6eb4d5"
      , ByteString
"d08011bad357420026eb4d5d09aba2001357440026aae780044c0092637540064940dd5001111192999ab9a337"
      , ByteString
"0e90021aab9d00113233004357420026eb8d5d09aba200135573c00226004931baa003222325333573466e1d20"
      , ByteString
"0635573a002264660086eb8d5d08009bae357426ae88004d55cf0008980124c6ea800c888c94ccd5cd19b87480"
      , ByteString
"20d55ce800899198021bae357420026eb4d5d09aba200135573c00226004931baa00322233230010012330054a"
      , ByteString
"04666ae68cdd798028021aab9d00124a2466006006002002444a666aae7c004400c4cc008d5d08009aba200123"
      , ByteString
"26335738002004240021"
      ]
    -- ScriptHash "41521dba681990883acbb09504a036ce45966a0131d840e1e8533d66"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                         {PlutusLedgerApi.V3.Data.Contexts.ScriptContext (PlutusLedgerApi.V3.Data.Contexts.TxInfo {PlutusLedgerApi.V3.Data.Contexts.txInfoMint = infoMint_2,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoInputs = infoInputs_3,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoWdrl = infoWdrl_4,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoTxCerts = infoTxCerts_5,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoVotes = infoVotes_6})
    --                                                                                                                         _redeemer_7
    --                                                                                                                         scriptInfo_8 -> case scriptInfo_8 of
    --                                                                                                                                         {PlutusLedgerApi.V3.Data.Contexts.MintingScript cs_9 -> PlutusTx.Data.AssocMap.member cs_9 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2);
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_10
    --                                                                                                                                                                                          mDatum_11 -> case mDatum_11 of
    --                                                                                                                                                                                                       {GHC.Maybe.Just _ -> GHC.Types.False;
    --                                                                                                                                                                                                        GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_10 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) infoInputs_3};
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.RewardingScript cred_12 -> PlutusTx.Data.AssocMap.member cred_12 infoWdrl_4;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.CertifyingScript _idx_13
    --                                                                                                                                                                                            txCert_14 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_14 PlutusTx.Eq.==) infoTxCerts_5;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.VotingScript voter_15 -> PlutusTx.Data.AssocMap.member voter_15 infoVotes_6;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.ProposingScript _idx_16
    --                                                                                                                                                                                           _propProc_17 -> GHC.Types.True}})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5907460101003232323225323335734646464646464a646464666ae68cdc3a40000022666004ea4dd71aba1355"
      , ByteString
"73c00866466600246eac0048dd30009192999ab9a35746002300218008008cccc009d691ba8001253335734666"
      , ByteString
"ae68cdc4800a4000941288c00400430020012223230010012330074bd6f7b63014980198029aab9e0019119aba"
      , ByteString
"0337606aae7400cc018008cc01001000646600600600237566ae8401c54c8c8c8ccd5cd19b87480080104ca4cc"
      , ByteString
"00800cd5d09aba200192509aba33333004003200123232533357346466e3cc004008c00400c8dd71aba135573c"
      , ByteString
"6ea80044c8cdc39800801180080191bad357426ae88d55cf1baa00114a06ae8400cd5d09aab9e37540026eb0d5"
      , ByteString
"d08060d55cf0038a999ab9a3370e9002002099980290009aba135573c00e6eacd5d08040a999ab9a3370e90030"
      , ByteString
"020991aba3333300400320012323233233001003223330030062253335734660320080043200729002919b8700"
      , ByteString
"2001a5064006494294414a04600a93111192999ab9a3370e90001aab9d001132330043574200266014eb4d5d09"
      , ByteString
"aba200135573c00226004931baa003230024988c8cc8cc00401088ccc00c01c894ccd5cd1980d0020010c801ca"
      , ByteString
"400a466e1c00800694190019250a51052811802a4c44464a666ae68cdc3a40046aae740044c8cc010d5d080099"
      , ByteString
"805bad357426ae88004d55cf0008980124c6ea800c8c00926232532333573466e1d200435573a00426464a666a"
      , ByteString
"e68cdc3a40086aae740044c94ccd5cd1980d1aba1003357420022660326ae84d5d10019aba1357440022940d55"
      , ByteString
"cf00089801a4c6ea801cd55cf00109800a4c46466603400c44466603a014444a666ae68cc07801800c54ccd5cd"
      , ByteString
"1980e802801099b8700400114a029408c01526230024988c8ccc06801c88ccc070028894ccd5cd1980e8020010"
      , ByteString
"99b8700300114a046008931180124c4a64666ae68cdc3a40146aae740144c94ccd5cd19b8748028d55ce800899"
      , ByteString
"80d9aba135573c00c6ae84d55cf0008980124c6ea80244c005262323323300100a2233300300d2253335734660"
      , ByteString
"40008004266e1c00c00452811802a4c44464a666ae68cdc3a40186aae740044c8cc010d5d08009bad357426ae8"
      , ByteString
"8004d55cf0008980124c6ea800c8c009262532333573466e1d201235573a00e26464a666ae68cdc3a40246aae7"
      , ByteString
"40044c94ccd5cd1980f9aba10033574200226603e6ae84d5d10019aba1357440022940d55cf00089801a4c6ea8"
      , ByteString
"030d55cf00389800a4c4a666ae68cdc3a40286aae7401c4c94ccd5cd19b8748050d55ce80089980e9aba135573"
      , ByteString
"c0106ae84d55cf0008a5037540162940dd50019aba1357440046eb0d5d08051aab9e00715333573466e1d20080"
      , ByteString
"0413330052001357426aae7801cdd59aba1357446ae88d5d11aba2357446ae8802054ccd5cd19b87480280104c"
      , ByteString
"9289aab9e00713290018009888c8c8cc94ccd5cd19b88002480004c0452401035054360013300100280194004c"
      , ByteString
"018d5d0800b003280160001918008009114800cc04d2410350543700912999ab9a3370e9000002080109991980"
      , ByteString
"300300099b81004480080046aae78008d55ce8009baa00120012223223002001323001001223330084bd701119"
      , ByteString
"2999ab9a300600113233574060100040026600a00a00426600a00a004600e0040026aae7400c888cc8c0040048"
      , ByteString
"cc015281199ab9a3375e600a0086aae740049289198018018008009112999aab9f0011003133002357420026ae"
      , ByteString
"88004dd51aba1357446ae88014d5d10009aba2001357446ae88d5d11aba200135573c6ea8d5d08009aab9e3754"
      , ByteString
"00429309800a49035054350023263357380030002232532333573466e1d200035573a004264a666ae68cdc3a40"
      , ByteString
"006aae740044cdc79bae357426aae7800cdd71aba135573c00226004931baa0031300149894c8c8ccd5cd19b87"
      , ByteString
"48008d55ce8020992999ab9a3370e90011aab9d001133003357426aae78014d5d09aab9e00113002498dd50028"
      , ByteString
"9800a4c46646600200e4466600601044a666ae68cdc78020010998038018008a5024a044464a666ae68cdc3a40"
      , ByteString
"086aae740044c8cc010dd71aba1001357426ae88004d55cf0008980124c6ea800c9281119299199ab9a3370e90"
      , ByteString
"001aab9d0021325333573466e1d200035573a0022660146ae84d55cf0019aba135573c00226004931baa003130"
      , ByteString
"0149894c8ccd5cd19b8748008d55ce8018a999ab9a3370e90011aab9d375400829444c005261300149894ccd5c"
      , ByteString
"d19b8748010d55ce801899b8748010d55ce9baa00414a06ea8008dd50011119299199ab9a3370e90001aab9d00"
      , ByteString
"21325333573466e1d200035573a002266e3cdd71aba135573c0066eb8d5d09aab9e00113002498dd500189800a"
      , ByteString
"4c4a666ae68cdc3a40046aae740084c94ccd5cd19b8748008d55ce800899b8f375c6ae84d55cf0019bae357426"
      , ByteString
"aae780045281baa00314a06ea8008888c94ccd5cd19b8748020d55ce800899198021aba1001375a6ae84d5d100"
      , ByteString
"09aab9e00113002498dd5001911192999ab9a3370e90031aab9d00113232333005357420046ae84004dd69aba1"
      , ByteString
"357440026ae88004d55cf0008980124c6ea800c1"
      ]
    -- ScriptHash "ac43e18917d7f23f26e073170f164fac84b9e421282926c260e919d0"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                         {PlutusLedgerApi.V3.Data.Contexts.ScriptContext (PlutusLedgerApi.V3.Data.Contexts.TxInfo {PlutusLedgerApi.V3.Data.Contexts.txInfoMint = infoMint_2,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoInputs = infoInputs_3,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoWdrl = infoWdrl_4,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoTxCerts = infoTxCerts_5,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoVotes = infoVotes_6})
    --                                                                                                                         _redeemer_7
    --                                                                                                                         scriptInfo_8 -> case scriptInfo_8 of
    --                                                                                                                                         {PlutusLedgerApi.V3.Data.Contexts.MintingScript cs_9 -> PlutusTx.Data.AssocMap.member cs_9 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2);
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_10
    --                                                                                                                                                                                          mDatum_11 -> case mDatum_11 of
    --                                                                                                                                                                                                       {GHC.Maybe.Just _ -> GHC.Types.False;
    --                                                                                                                                                                                                        GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_10 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) infoInputs_3};
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.RewardingScript cred_12 -> PlutusTx.Data.AssocMap.member cred_12 infoWdrl_4;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.CertifyingScript _idx_13
    --                                                                                                                                                                                            txCert_14 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_14 PlutusTx.Eq.==) infoTxCerts_5;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.VotingScript voter_15 -> PlutusTx.Data.AssocMap.member voter_15 infoVotes_6;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.ProposingScript _idx_16
    --                                                                                                                                                                                           _propProc_17 -> GHC.Types.True}})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5907460101003232323225323335734646464646464a646464666ae68cdc3a40000022666004ea4dd71aba1355"
      , ByteString
"73c00866466600246eac0048dd30009192999ab9a35746002300218008008cccc009d691ba8001253335734666"
      , ByteString
"ae68cdc4800a4000941288c00400430020012223230010012330074bd6f7b63014980198029aab9e0019119aba"
      , ByteString
"0337606aae7400cc018008cc01001000646600600600237566ae8401c54c8c8c8ccd5cd19b87480080104ca4cc"
      , ByteString
"00800cd5d09aba200192509aba33333004003200123232533357346466e3cc004008c00400c8dd71aba135573c"
      , ByteString
"6ea80044c8cdc39800801180080191bad357426ae88d55cf1baa00114a06ae8400cd5d09aab9e37540026eb0d5"
      , ByteString
"d08060d55cf0038a999ab9a3370e9002002099980290009aba135573c00e6eacd5d08040a999ab9a3370e90030"
      , ByteString
"020991aba3333300400320012323233233001003223330030062253335734660320080043200729002919b8700"
      , ByteString
"2001a5064006494294414a04600a93111192999ab9a3370e90001aab9d001132330043574200266014eb4d5d09"
      , ByteString
"aba200135573c00226004931baa003230024988c8cc8cc00401088ccc00c01c894ccd5cd1980d0020010c801ca"
      , ByteString
"400a466e1c00800694190019250a51052811802a4c44464a666ae68cdc3a40046aae740044c8cc010d5d080099"
      , ByteString
"805bad357426ae88004d55cf0008980124c6ea800c8c00926232532333573466e1d200435573a00426464a666a"
      , ByteString
"e68cdc3a40086aae740044c94ccd5cd1980d1aba1003357420022660326ae84d5d10019aba1357440022940d55"
      , ByteString
"cf00089801a4c6ea801cd55cf00109800a4c46466603400c44466603a014444a666ae68cc07801800c54ccd5cd"
      , ByteString
"1980e802801099b8700400114a029408c01526230024988c8ccc06801c88ccc070028894ccd5cd1980e8020010"
      , ByteString
"99b8700300114a046008931180124c4a64666ae68cdc3a40146aae740144c94ccd5cd19b8748028d55ce800899"
      , ByteString
"80d9aba135573c00c6ae84d55cf0008980124c6ea80244c005262323323300100a2233300300d2253335734660"
      , ByteString
"40008004266e1c00c00452811802a4c44464a666ae68cdc3a40186aae740044c8cc010d5d08009bad357426ae8"
      , ByteString
"8004d55cf0008980124c6ea800c8c009262532333573466e1d201235573a00e26464a666ae68cdc3a40246aae7"
      , ByteString
"40044c94ccd5cd1980f9aba10033574200226603e6ae84d5d10019aba1357440022940d55cf00089801a4c6ea8"
      , ByteString
"030d55cf00389800a4c4a666ae68cdc3a40286aae7401c4c94ccd5cd19b8748050d55ce80089980e9aba135573"
      , ByteString
"c0106ae84d55cf0008a5037540162940dd50019aba1357440046eb0d5d08051aab9e00715333573466e1d20080"
      , ByteString
"0413330052001357426aae7801cdd59aba1357446ae88d5d11aba2357446ae8802054ccd5cd19b87480280104c"
      , ByteString
"9289aab9e00713290018009888c8c8cc94ccd5cd19b88002480004c0452401035054360013300100280194004c"
      , ByteString
"018d5d0800b003280160001918008009114800cc04d2410350543700912999ab9a3370e9000002080109991980"
      , ByteString
"300300099b81004480080046aae78008d55ce8009baa00120012223223002001323001001223330084bd701119"
      , ByteString
"2999ab9a300600113233574060100040026600a00a00426600a00a004600e0040026aae7400c888cc8c0040048"
      , ByteString
"cc015281199ab9a3375e600a0086aae740049289198018018008009112999aab9f0011003133002357420026ae"
      , ByteString
"88004dd51aba1357446ae88014d5d10009aba2001357446ae88d5d11aba200135573c6ea8d5d08009aab9e3754"
      , ByteString
"00429309800a49035054350023263357380030002232532333573466e1d200035573a004264a666ae68cdc3a40"
      , ByteString
"006aae740044cdc79bae357426aae7800cdd71aba135573c00226004931baa0031300149894c8c8ccd5cd19b87"
      , ByteString
"48008d55ce8020992999ab9a3370e90011aab9d001133003357426aae78014d5d09aab9e00113002498dd50028"
      , ByteString
"9800a4c46646600200e4466600601044a666ae68cdc78020010998038018008a5024a044464a666ae68cdc3a40"
      , ByteString
"086aae740044c8cc010dd71aba1001357426ae88004d55cf0008980124c6ea800c9281119299199ab9a3370e90"
      , ByteString
"001aab9d0021325333573466e1d200035573a0022660146ae84d55cf0019aba135573c00226004931baa003130"
      , ByteString
"0149894c8ccd5cd19b8748008d55ce8018a999ab9a3370e90011aab9d375400829444c005261300149894ccd5c"
      , ByteString
"d19b8748010d55ce801899b8748010d55ce9baa00414a06ea8008dd50011119299199ab9a3370e90001aab9d00"
      , ByteString
"21325333573466e1d200035573a002266e3cdd71aba135573c0066eb8d5d09aab9e00113002498dd500189800a"
      , ByteString
"4c4a666ae68cdc3a40046aae740084c94ccd5cd19b8748008d55ce800899b8f375c6ae84d55cf0019bae357426"
      , ByteString
"aae780045281baa00314a06ea8008888c94ccd5cd19b8748020d55ce800899198021aba1001375a6ae84d5d100"
      , ByteString
"09aab9e00113002498dd5001911192999ab9a3370e90031aab9d00113232333005357420046ae84004dd69aba1"
      , ByteString
"357440026ae88004d55cf0008980124c6ea800c1"
      ]

-- | Script that succeeds when datum is expected and purpose arguments are validated against txInfo
-- Fails on malformed arguments
purposeIsWellformedWithDatum :: SLanguage l -> Plutus l
purposeIsWellformedWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
purposeIsWellformedWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "8749798deb0743c573fad7a8e4a692f9aa25f6fc947bdf97f4a19fd4"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                               {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V1.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5)
    --                                                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                              else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"59011d010000323222232323232325333573466e1d200235573a0082a666ae68d5d198009bac357426aae78dd5"
      , ByteString
"1aba100516100a163230010012253335573e002297ae013322533357346464a666ae68cdc79803800980380109"
      , ByteString
"9b873008001300800214a06ae84d55cf0041aba135573c6ea80084cd5d0001198020020008998020020009aba1"
      , ByteString
"0013574400246464664a666ae68cdc4001240002601692010350543600133001002122330012375c6ae8400448"
      , ByteString
"8008c8c0040048894cd40044c035240103505437002215333573466e1d20000041002133233006006001337020"
      , ByteString
"0890010009aab9e00235573a0026ea8d5d09aab9e375400246eb4d5d09aba235573c6ea8004dd51aba13574400"
      , ByteString
"26aae78dd5000919319ab9c0010021200101"
      ]
    -- ScriptHash "10eb5bbb3496cf638cd65e03874653bfafc954808c0224655ba7193d"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                               {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V2.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5)
    --                                                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                              else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"59011d010000323222232323232325333573466e1d200235573a0082a666ae68d5d198009bac357426aae78dd5"
      , ByteString
"1aba100516100a163230010012253335573e002297ae013322533357346464a666ae68cdc79803800980380109"
      , ByteString
"9b873008001300800214a06ae84d55cf0041aba135573c6ea80084cd5d0001198020020008998020020009aba1"
      , ByteString
"0013574400246464664a666ae68cdc4001240002601692010350543600133001002122330012375c6ae8400448"
      , ByteString
"8008c8c0040048894cd40044c035240103505437002215333573466e1d20000041002133233006006001337020"
      , ByteString
"0890010009aab9e00235573a0026ea8d5d09aab9e375400246eb4d5d09aba235573c6ea8004dd51aba13574400"
      , ByteString
"26aae78dd5000919319ab9c0010021200101"
      ]
    -- ScriptHash "22bc5f6b3c721260818a5bbbbf5be7c0c430c30b1cb6e1fb48898186"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                           {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                           _redeemer_3
    --                                                                                                                           (PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_4
    --                                                                                                                                                                            (GHC.Maybe.Just _)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2));
    --                                                                            _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"590135010100322533357346464a666ae68cdc3a40046aae740044c8c8c8ca4c8c8cc94ccd5cd19b8800248000"
      , ByteString
"4c02d241035054360013300100280194004d5d0800b003280160001918008009114800cc035241035054370091"
      , ByteString
"2999ab9a3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae880124"
      , ByteString
"666ae68d5d198011bac357426aae78dd51aba10074a094694064600200244a666aae7c00452f5c026644a666ae"
      , ByteString
"68c8c94ccd5cd19b8f3007001300700213370e601000260100042940d5d08041aba135573c6ea80084cd5d0001"
      , ByteString
"198020020008998020020009aba10013574400246eb8d5d09aab9e375400246eb4d5d09aba235573c6ea8004d5"
      , ByteString
"5cf0008a5037546ae84d5d11aba200135573c6ea80045261300249010350543500232633573800300001"
      ]
    -- ScriptHash "94b9ec6dcebbf0f56edee997ccde9b3475dc0b9bb7fbf455c38448ec"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                           {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                           _redeemer_3
    --                                                                                                                           (PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_4
    --                                                                                                                                                                            (GHC.Maybe.Just _)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2));
    --                                                                            _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"590135010100322533357346464a666ae68cdc3a40046aae740044c8c8c8ca4c8c8cc94ccd5cd19b8800248000"
      , ByteString
"4c02d241035054360013300100280194004d5d0800b003280160001918008009114800cc035241035054370091"
      , ByteString
"2999ab9a3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae880124"
      , ByteString
"666ae68d5d198011bac357426aae78dd51aba10074a094694064600200244a666aae7c00452f5c026644a666ae"
      , ByteString
"68c8c94ccd5cd19b8f3007001300700213370e601000260100042940d5d08041aba135573c6ea80084cd5d0001"
      , ByteString
"198020020008998020020009aba10013574400246eb8d5d09aab9e375400246eb4d5d09aba235573c6ea8004d5"
      , ByteString
"5cf0008a5037546ae84d5d11aba200135573c6ea80045261300249010350543500232633573800300001"
      ]

-- | Script that succeeds when datum is expected and datum is validated against txInfo
-- Fails on malformed arguments
datumIsWellformed :: SLanguage l -> Plutus l
datumIsWellformed :: forall (l :: Language). SLanguage l -> Plutus l
datumIsWellformed =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "37b9340a2e6f1450032bb02f755b1f1cb4f36bc89cf2bd2715ff4168"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                    {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((datum'_4 PlutusTx.Eq.==) GHC.Base.. Data.Tuple.snd) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoData txInfo_6)
    --                                                                                                                                                                                                                                                               then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                               else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5901140100003232222325333573466e1d200235573a6ea8d5d09aba20011533357346ae8ccc8c004004894ccd"
      , ByteString
"55cf8008a5eb804c8c94ccd5cd19baf00830012200113233574060044466e9520003357406ea4008cd5d0000a5"
      , ByteString
"eb80004cc0100100084cc0100100094c8c8cc94ccd5cd19b88002480004c02d241035054360013300100212233"
      , ByteString
"001233221233001003002375c6ae84004d5d09aba200112200232300100122253350011300d491035054370022"
      , ByteString
"15333573466e1d200000410021332330060060013370200890010009aab9e00235573a0026ea8d5d08011aba20"
      , ByteString
"0137586ae84d5d11aba2357446ae88d5d11aba2357446ae88d55cf1baa357420022c200c2c6aae78dd50009193"
      , ByteString
"19ab9c001002120011"
      ]
    -- ScriptHash "6d0768fb0a8bb127d6857e064645e2968a3b3266fc82e5233880a02e"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                    {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum'_4 PlutusTx.Eq.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoData txInfo_6))
    --                                                                                                                                                                                                                                                               then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                               else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58a80100003223222325333573466e1d200235573a6ea8d5d09aba20011533357346ae8cc010cc8c0040048cc0"
      , ByteString
"1d2f5c04466ae80d55cf001198018018009bab357426ae88d5d11aba2357446ae88d5d11aba2357446ae88d5d1"
      , ByteString
"1aab9e37546ae840045844800458d55cf1baa001323001001223330044bd70112999ab9a3375e00a004266ae80"
      , ByteString
"008cc0100100044cc0100100040048894ccd55cf80088018998011aba1001357440021"
      ]
    -- ScriptHash "581d94dbafe7b1d6315b15f4f8232e0217726b7c56af062e7a929aaa"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                _redeemer_3
    --                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                 (GHC.Maybe.Just datum_5)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoData txInfo_2)));
    --                                                                 _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"59013201010032322533357346464a666ae68cdc3a40046aae74004564c8c8cc94ccd5cd19b88002480004c021"
      , ByteString
"2401035054360013300100280194004d5d0800b003280160001918008009114800cc0292410350543700912999"
      , ByteString
"ab9a3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000"
      , ByteString
"c8c84ccd5cd1aba3300133230010012330074bd701119aba035573c004660060060026eacd5d09aba2357446ae"
      , ByteString
"88d5d11aba2357446ae88d5d11aba2357446aae78dd51aba10044a0944c8c00400488ccc01d2f5c044a666ae68"
      , ByteString
"cdd7802801099aba0002330040040011330040040010018a500a5037546ae84d5d11aba200135573c6ea800452"
      , ByteString
"6130034901035054350022253335573e00220062660046ae84004d5d1000919319ab9c00180001"
      ]
    -- ScriptHash "b8a8e91163013a8b637f7477421bf4546eeefde7290b112fcccd5c0a"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                _redeemer_3
    --                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                 (GHC.Maybe.Just datum_5)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoData txInfo_2)));
    --                                                                 _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"59013201010032322533357346464a666ae68cdc3a40046aae74004564c8c8cc94ccd5cd19b88002480004c021"
      , ByteString
"2401035054360013300100280194004d5d0800b003280160001918008009114800cc0292410350543700912999"
      , ByteString
"ab9a3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa357426ae88d55cf000"
      , ByteString
"c8c84ccd5cd1aba3300133230010012330074bd701119aba035573c004660060060026eacd5d09aba2357446ae"
      , ByteString
"88d5d11aba2357446ae88d5d11aba2357446aae78dd51aba10044a0944c8c00400488ccc01d2f5c044a666ae68"
      , ByteString
"cdd7802801099aba0002330040040011330040040010018a500a5037546ae84d5d11aba200135573c6ea800452"
      , ByteString
"6130034901035054350022253335573e00220062660046ae84004d5d1000919319ab9c00180001"
      ]

-- | Script that succeeds when inputs and outputs are not empty validated against txInfo
-- Fails on malformed arguments and also if inputs or outputs are empty
inputsOutputsAreNotEmptyNoDatum :: SLanguage l -> Plutus l
inputsOutputsAreNotEmptyNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
inputsOutputsAreNotEmptyNoDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "b4730007df6e096ae54cdfb9e446b502921e198129b47f597780ea03"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                       {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                       _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_4)
    --                                                                                                                                                                            then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                            else GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"59011001000032322253335734a64666ae68d5d1998009111111111005130a511357466600244444444440124c"
      , ByteString
"4464646464646464646466666666660166eb0d5d08049bac357420106eacd5d08039bab3574200c6eb0d5d0802"
      , ByteString
"9bac357420086ae8400cdd61aba100237586ae84004c8c8cc94ccd5cd19b88002480004c045241035054360013"
      , ByteString
"3001002122330012375c6ae84004488008c8c0040048894cd40044c04d240103505437002215333573466e1d20"
      , ByteString
"0000410021332330060060013370200890010009aab9e00235573a0026ea8d5d09aba2001357440026ae88004d"
      , ByteString
"5d10009aba2001357440026ae88004d5d10009aba200135573c6ea8d5d09aab9e37540062c2008464c66ae7000"
      , ByteString
"4008480041"
      ]
    -- ScriptHash "9348ca03cad04b0046a04c212ec6fdf473272ce3926bee4359a4adde"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                       {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                       _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_4)
    --                                                                                                                                                                            then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                            else GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"59012901000032322253335734a64666ae68d5d199800911111111111006130a51135746660024444444444440"
      , ByteString
"144c44646464646464646464646466666666666601a6eb0d5d08059bac357420146eb0d5d08049bab357420106"
      , ByteString
"eacd5d08039bac3574200c6eacd5d08029aba100437586ae8400cdd59aba100237566ae84004c8c8cc94ccd5cd"
      , ByteString
"19b88002480004c04d24010350543600133001002122330012375c6ae84004488008c8c0040048894cd40044c0"
      , ByteString
"55240103505437002215333573466e1d200000410021332330060060013370200890010009aab9e00235573a00"
      , ByteString
"26ea8d5d09aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae"
      , ByteString
"88004d55cf1baa357426aae78dd50018b0802119319ab9c0010021200101"
      ]
    -- ScriptHash "3e3c64e208b3c8c1b6fd2c74da9c72a23db29376a85a8653749bbee9"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                               (GHC.Maybe.Just _)) -> GHC.Types.False;
    --                                                                               PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                              _redeemer_6
    --                                                                                                                              _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5901a4010100322533357346464a6464666ae68cdc3a40046aae7400c4ca4cc00c8004d5d09aba200192509801"
      , ByteString
"24c35573c00626002931199ab9a53233357346ae8ccc00488888888888888880409852889aba33300122222222"
      , ByteString
"2222222200e262232323232323232323232323232323232333333333333333301237586ae84040dd61aba100f3"
      , ByteString
"7586ae84038dd69aba100d37566ae84030dd61aba100b37566ae84028d5d08049bac357420106eacd5d08039ba"
      , ByteString
"b3574200c6eb8d5d08029bab357420086eb0d5d080198009aba10023001357426ae88008c04dd69aba20013574"
      , ByteString
"40026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20013"
      , ByteString
"57440026aae78dd51aba10064a094488c8c8cc94ccd5cd19b88002480004c02524010350543600133001002801"
      , ByteString
"94004c018d5d0800b003280160001918008009114800cc02d2410350543700912999ab9a3370e9000002080109"
      , ByteString
"991980300300099b81004480080046aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea8004526"
      , ByteString
"130024910350543500232633573800300001"
      ]
    -- ScriptHash "04a0a4e1c62183843862ad0b9104a03d6928c0cab9f5d624f9c88692"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                               (GHC.Maybe.Just _)) -> GHC.Types.False;
    --                                                                               PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                              _redeemer_6
    --                                                                                                                              _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5901a4010100322533357346464a6464666ae68cdc3a40046aae7400c4ca4cc00c8004d5d09aba200192509801"
      , ByteString
"24c35573c00626002931199ab9a53233357346ae8ccc00488888888888888880409852889aba33300122222222"
      , ByteString
"2222222200e262232323232323232323232323232323232333333333333333301237586ae84040dd61aba100f3"
      , ByteString
"7586ae84038dd69aba100d37566ae84030dd61aba100b37566ae84028d5d08049bac357420106eacd5d08039ba"
      , ByteString
"b3574200c6eb8d5d08029bab357420086eb0d5d080198009aba10023001357426ae88008c04dd69aba20013574"
      , ByteString
"40026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20013"
      , ByteString
"57440026aae78dd51aba10064a094488c8c8cc94ccd5cd19b88002480004c02524010350543600133001002801"
      , ByteString
"94004c018d5d0800b003280160001918008009114800cc02d2410350543700912999ab9a3370e9000002080109"
      , ByteString
"991980300300099b81004480080046aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea8004526"
      , ByteString
"130024910350543500232633573800300001"
      ]

-- | Script that succeeds when inputs and outputs are not empty validated against txInfo
-- Fails on malformed arguments and also if inputs or outputs are empty
inputsOutputsAreNotEmptyWithDatum :: SLanguage l -> Plutus l
inputsOutputsAreNotEmptyWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
inputsOutputsAreNotEmptyWithDatum =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "02bf4789f87d26358cb94384a628c64d4544e8e536f661df181c9fd0"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                                    {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                           {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                        {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                        _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_5)
    --                                                                                                                                                                                                                             then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"590111010000323222253335734a64666ae68d5d1998009111111111005130a511357466600244444444440124"
      , ByteString
"c4464646464646464646466666666660166eb0d5d08049bac357420106eacd5d08039bab3574200c6eb0d5d080"
      , ByteString
"29bac357420086ae8400cdd61aba100237586ae84004c8c8cc94ccd5cd19b88002480004c04924010350543600"
      , ByteString
"133001002122330012375c6ae84004488008c8c0040048894cd40044c051240103505437002215333573466e1d"
      , ByteString
"200000410021332330060060013370200890010009aab9e00235573a0026ea8d5d09aba2001357440026ae8800"
      , ByteString
"4d5d10009aba2001357440026ae88004d5d10009aba200135573c6ea8d5d09aab9e37540062c200a464c66ae70"
      , ByteString
"004008480041"
      ]
    -- ScriptHash "d858e669a1da1f64e8fbf1031734d3486a6f50f6fe8c6db0d53d0a93"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                                    {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                           {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                        {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                        _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_5)
    --                                                                                                                                                                                                                             then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"590129010000323222253335734a64666ae68d5d199800911111111111006130a5113574666002444444444444"
      , ByteString
"0144c44646464646464646464646466666666666601a6eb0d5d08059bac357420146eb0d5d08049bab35742010"
      , ByteString
"6eacd5d08039bac3574200c6eacd5d08029aba100437586ae8400cdd59aba100237566ae84004c8c8cc94ccd5c"
      , ByteString
"d19b88002480004c0512410350543600133001002122330012375c6ae84004488008c8c0040048894cd40044c0"
      , ByteString
"59240103505437002215333573466e1d200000410021332330060060013370200890010009aab9e00235573a00"
      , ByteString
"26ea8d5d09aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae"
      , ByteString
"88004d55cf1baa357426aae78dd50018b0802919319ab9c0010021200101"
      ]
    -- ScriptHash "e979372cafd2822b678194dd1ccff2ca152ff4d5a6d9e73a32f163ff"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                _redeemer_3
    --                                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                                 (GHC.Maybe.Nothing)) -> GHC.Types.False;
    --                                                                                 PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                _redeemer_6
    --                                                                                                                                _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5901a4010100322533357346464a6464666ae68cdc3a40046aae7400c4ca4cc00c8004d5d09aba200191801a4d"
      , ByteString
"4a035573c00626002931199ab9a53233357346ae8ccc00488888888888888880409852889aba33300122222222"
      , ByteString
"2222222200e262232323232323232323232323232323232333333333333333301237586ae84040dd61aba100f3"
      , ByteString
"7586ae84038dd69aba100d37566ae84030dd61aba100b37566ae84028d5d08049bac357420106eacd5d08039ba"
      , ByteString
"b3574200c6eb8d5d08029bab357420086eb0d5d080198009aba10023001357426ae88008c04dd69aba20013574"
      , ByteString
"40026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20013"
      , ByteString
"57440026aae78dd51aba10064a094488c8c8cc94ccd5cd19b88002480004c02524010350543600133001002801"
      , ByteString
"94004c018d5d0800b003280160001918008009114800cc02d2410350543700912999ab9a3370e9000002080109"
      , ByteString
"991980300300099b81004480080046aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea8004526"
      , ByteString
"130024910350543500232633573800300001"
      ]
    -- ScriptHash "9bdd5669aab46266cc856a414d8a7e01d1bb24b1bce2c1c0d88072d0"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                _redeemer_3
    --                                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                                 (GHC.Maybe.Nothing)) -> GHC.Types.False;
    --                                                                                 PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                _redeemer_6
    --                                                                                                                                _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5901a4010100322533357346464a6464666ae68cdc3a40046aae7400c4ca4cc00c8004d5d09aba200191801a4d"
      , ByteString
"4a035573c00626002931199ab9a53233357346ae8ccc00488888888888888880409852889aba33300122222222"
      , ByteString
"2222222200e262232323232323232323232323232323232333333333333333301237586ae84040dd61aba100f3"
      , ByteString
"7586ae84038dd69aba100d37566ae84030dd61aba100b37566ae84028d5d08049bac357420106eacd5d08039ba"
      , ByteString
"b3574200c6eb8d5d08029bab357420086eb0d5d080198009aba10023001357426ae88008c04dd69aba20013574"
      , ByteString
"40026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20013"
      , ByteString
"57440026aae78dd51aba10064a094488c8c8cc94ccd5cd19b88002480004c02524010350543600133001002801"
      , ByteString
"94004c018d5d0800b003280160001918008009114800cc02d2410350543700912999ab9a3370e9000002080109"
      , ByteString
"991980300300099b81004480080046aae78008d55ce8009baa00137546ae84d5d11aba200135573c6ea8004526"
      , ByteString
"130024910350543500232633573800300001"
      ]

-- | Script that succeeds only if any the inputs also appears in the reference inputs
inputsOverlapsWithRefInputs :: SLanguage l -> Plutus l
inputsOverlapsWithRefInputs :: forall (l :: Language). SLanguage l -> Plutus l
inputsOverlapsWithRefInputs =
  ByteString -> Plutus l
forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus (ByteString -> Plutus l)
-> (SLanguage l -> ByteString) -> SLanguage l -> Plutus l
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
mconcat ([ByteString] -> ByteString)
-> (SLanguage l -> [ByteString]) -> SLanguage l -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    SLanguage l
SPlutusV1 -> [Char] -> [ByteString]
forall a. HasCallStack => [Char] -> a
error [Char]
"Script not available in PlutusV1"
    -- ScriptHash "bc562d8aba01a7534d18775cbb8a3b15c388805ada374bd46c8a506d"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOverlapsWithRefInputs_0 _datum_1 _redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                _scriptPurpose_5 -> if PlutusTx.Data.List.any (\x_6 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.== x_6)) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoReferenceInputs txInfo_4) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4
    --                                                                                                                                     then GHC.Tuple.Prim.()
    --                                                                                                                                     else PlutusTx.Builtins.error GHC.Tuple.Prim.()}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"59060d010000323232323233223232323232323232322223232533357346646002002446660209408c894ccd5c"
      , ByteString
"d19a9801198031111111111110059312514a029444cc014014004c8c00400488ccc04c060894ccd5cd19192999"
      , ByteString
"ab9a32325333573466e3cc050008c0500044cdc3980c001180c0008a50357420046ae840084ccc040d5d09aba2"
      , ByteString
"0022222333014357426ae8801488894ccd5cd19192999ab9a33024357420046ae840044c94cd4c004d5d09aba2"
      , ByteString
"003213353002357426ae8800c8c94c8ccd5cd19b8748000d55ce8010992999ab9a3370e90001aab9d00113302a"
      , ByteString
"357426aae7800cd5d09aab9e00113002498dd500189800a4c466605400844466605a00c444a666ae68cdc38030"
      , ByteString
"018a999ab9a3370e00a004266e1c0100045280a5024a04940dd500125013353001357426ae88008928251301b2"
      , ByteString
"00114a06aae78dd50029aab9e37540102a666ae68cccc04c8cc8c0040048cc085289199ab9a3370e90001bad35"
      , ByteString
"573c0024660060060024940dd580091199980a919b8748000dd68009119b87375a0046eb4004dd58011bab0010"
      , ByteString
"07003153335734a64666ae68cdc3a40006aae74dd50038a999ab9a3370e90001aab9d375400629444c00526130"
      , ByteString
"014988c94c8ccd5cd19b8748008d55ce8010992999ab9a3370e90011aab9d00113371e6eb8d5d09aab9e003375"
      , ByteString
"c6ae84d55cf0008980124c6ea80144c0052625333573466e1d200435573a004264a666ae68cdc3a40086aae740"
      , ByteString
"044cdd79aba135573c0066ae84d55cf0008a50375400a2940dd50038a99a8029099a801119b8f0020014a0266a"
      , ByteString
"0024941288a5014a029408c8d400400588c8d400400585281aab9e375400c6aae78dd500108911801002099802"
      , ByteString
"0020008008009980091111111111100613080a8b1119191919191919191919191999999999998069bac3574201"
      , ByteString
"66eb0d5d08051bac357420126eacd5d08041bab3574200e6eb0d5d08031bab3574200a6ae84010dd61aba10033"
      , ByteString
"7566ae84008dd59aba10013016357426ae88004d5d10009aba2001357440026ae88004d5d10009aba200135744"
      , ByteString
"0026ae88004d5d10009aba200135573c6ea8d5d09aab9e37540084464446600600400264600200244466660224"
      , ByteString
"66660244944888cc8c0040048cc059289199ab9a300b35573c0024660060060024940014008064888cccc0508c"
      , ByteString
"c8c0040048cc059289199ab9a300b35573c0024660060060024940018888c8c94ccd5cd19baf00235573a00a2a"
      , ByteString
"666ae68cc030d55cf0041aab9e005133300b00b00700414a02a666ae68c034d55cf00409998058058038048998"
      , ByteString
"00a999ab9a300d35573c00a297adef6c60133574000a97adef6c60004323001001222333301b24a044464a666a"
      , ByteString
"e68c04c0044ccc01c01c01800c54ccd5cd19baf35573a0080102a666ae68cc048d55cf00700089998088088069"
      , ByteString
"9a80b8030018a5013323300800800133574000800c0066aae7800c004088d55ce80300200d80100c1991800800"
      , ByteString
"910911999806100111119a998038038900080119aba0003004002013120012223232323333005357420066eacd"
      , ByteString
"5d08011aba10013300775c6ae84d5d10009aba2001357440026aae78dd500191198031baa00122323335008330"
      , ByteString
"01232122300200330063574200266002402201a006004a016460046ae84d55cf1baa001233003375400244666a"
      , ByteString
"00866a01046eb8d5d0800804801000899112999ab9a33710002900009806248103505436001330030010023230"
      , ByteString
"0100122253350011300c490103505437002215333573466e1d2000004100213323300600600133702008900100"
      , ByteString
"091198009aab9d00235573c00446eb4d5d09aba235573c6ea80048894ccd55cf80088018998011aba100135744"
      , ByteString
"002244004244244660020080064464a64666ae68cdc3a40006aae740084c94ccd5cd19b8748000d55ce800899b"
      , ByteString
"8f375c6ae84d55cf0019bae357426aae780044c009263754006260029312999ab9a3370e90011aab9d00213253"
      , ByteString
"33573466e1d200235573a002266e3cdd71aba135573c0066eb8d5d09aab9e00114a06ea800c5281baa00222232"
      , ByteString
"5333573466e1d200235573a0022646466600a6eb4d5d08011bad357420026eb4d5d09aba2001357440026aae78"
      , ByteString
"0044c009263754006244002464c66ae7000400848005"
      ]
    -- ScriptHash "8b97fb204b3c00be3b9df89288257b0bc816b41833d70effbdecfac7"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOverlapsWithRefInputs_0 context_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData context_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              _scriptPurpose_4 -> PlutusTx.Data.List.any (\x_5 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.== x_5)) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoReferenceInputs txInfo_2) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2;
    --                                                                               _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5905fa01010032323232323232323225333573464646646002002446660169408c894ccd5cd498011980311111"
      , ByteString
"11111111111007934928d280528899802802800991800800911998074008894ccd5cd19192999ab9a323253335"
      , ByteString
"73466e3cc048008c0480044cdc3980980118098008a50357420046ae840084ccc038d5d09aba20022222333012"
      , ByteString
"357426ae8801488894ccd5cd19192999ab9a3301d357420046ae8400464cc0648004d5d09aba2002949980d100"
      , ByteString
"09aba135744005232532333573466e1d200035573a004264a666ae68cdc3a40006aae740044cc088d5d09aab9e"
      , ByteString
"003357426aae780044c009263754006260029311998110021111998128031112999ab9a3370e00c0062a666ae6"
      , ByteString
"8cdc3802801099b8700400114a02940928125037540054a0c9980c90009aba13574400324a14a20a5035573c6e"
      , ByteString
"a8014d55cf1baa0081533357346666026466460020024660389448ccd5cd19b8748000dd69aab9e00123300300"
      , ByteString
"300124a06eac00488cccc0548cdc3a40006eb400488cdc39bad002375a0026eac008dd58008038018a999ab9a5"
      , ByteString
"32333573466e1d200035573a6ea801c54ccd5cd19b8748000d55ce9baa00314a2260029309800a4c464a64666a"
      , ByteString
"e68cdc3a40046aae740084c94ccd5cd19b8748008d55ce800899b8f375c6ae84d55cf0019bae357426aae78004"
      , ByteString
"4c00926375400a260029312999ab9a3370e90021aab9d0021325333573466e1d200435573a002266ebcd5d09aa"
      , ByteString
"b9e003357426aae780045281baa00514a06ea801c640165200523371e0040034a0c800c928528829405280a502"
      , ByteString
"329001800988ca4006002614a06aae78dd50031aab9e3754004300100209980200200080080099800911111111"
      , ByteString
"111111100813111919191919191919191919191919191919999999999999998091bac357420206eb0d5d08079b"
      , ByteString
"ac3574201c6eb4d5d08069bab357420186eb0d5d08059bab357420146ae84024dd61aba100837566ae8401cdd5"
      , ByteString
"9aba1006375c6ae84014dd59aba100437586ae8400cc004d5d080118009aba135744004602ceb4d5d10009aba2"
      , ByteString
"001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009a"
      , ByteString
"ba200135573c6ea8d5d09aab9e37540084464446600600400264600200244466660184666601a4944888cc8c00"
      , ByteString
"40048cc045289199ab9a300b35573c002466006006002494001400a000444666601e466460020024660229448c"
      , ByteString
"cd5cd18059aab9e00123300300300124a000c4446464a666ae68cdd78011aab9d005153335734660186aae7802"
      , ByteString
"0d55cf00289998058058038020a50153335734601a6aae780204ccc02c02c01c0244cc0054ccd5cd18069aab9e"
      , ByteString
"00514bd6f7b630099aba00054bd6f7b630002191800800911199980b125022232533357346026002266600e00e"
      , ByteString
"00c0062a666ae68cdd79aab9d004008153335734660246aae780380044ccc044044034cd405401800c52809991"
      , ByteString
"980400400099aba000400600335573c00600300035573a00c0090000028000a4c2601492010350543500332300"
      , ByteString
"100122122333300920022223353300700712001002335740006008005000120012223232323333005357420066"
      , ByteString
"eacd5d08011aba10013300775c6ae84d5d10009aba2001357440026aae78dd50019119191992999ab9a3371000"
      , ByteString
"4900009805a481035054360013300100280194004c018d5d0800b003280160001918008009114800cc03524103"
      , ByteString
"50543700912999ab9a3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa0012"
      , ByteString
"375c6ae84d55cf1baa0012375a6ae84d5d11aab9e3754002444a666aae7c004400c4cc008d5d08009aba200122"
      , ByteString
"32532333573466e1d200035573a004264a666ae68cdc3a40006aae740044cdc79bae357426aae7800cdd71aba1"
      , ByteString
"35573c00226004931baa0031300149894ccd5cd19b8748008d55ce8010992999ab9a3370e90011aab9d0011337"
      , ByteString
"1e6eb8d5d09aab9e003375c6ae84d55cf0008a5037540062940dd5001111192999ab9a3370e90011aab9d00113"
      , ByteString
"232333005375a6ae84008dd69aba1001375a6ae84d5d10009aba200135573c00226004931baa00323263357380"
      , ByteString
"030001"
      ]
    -- ScriptHash "e049bc84462c6e11f2b965d5aaba0d59b745fc2e8522bc57aa803ce3"
    -- Preprocessed PlutusV4 Script:
    -- @@@
    -- inputsOverlapsWithRefInputs_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                  PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOverlapsWithRefInputs_0 context_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData context_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              _scriptPurpose_4 -> PlutusTx.Data.List.any (\x_5 -> (PlutusTx.Maybe.isJust GHC.Base.. PlutusTx.Data.List.find (PlutusTx.Eq.== x_5)) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoReferenceInputs txInfo_2) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2;
    --                                                                               _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV4 ->
      [ ByteString
"5905fa01010032323232323232323225333573464646646002002446660169408c894ccd5cd498011980311111"
      , ByteString
"11111111111007934928d280528899802802800991800800911998074008894ccd5cd19192999ab9a323253335"
      , ByteString
"73466e3cc048008c0480044cdc3980980118098008a50357420046ae840084ccc038d5d09aba20022222333012"
      , ByteString
"357426ae8801488894ccd5cd19192999ab9a3301d357420046ae8400464cc0648004d5d09aba2002949980d100"
      , ByteString
"09aba135744005232532333573466e1d200035573a004264a666ae68cdc3a40006aae740044cc088d5d09aab9e"
      , ByteString
"003357426aae780044c009263754006260029311998110021111998128031112999ab9a3370e00c0062a666ae6"
      , ByteString
"8cdc3802801099b8700400114a02940928125037540054a0c9980c90009aba13574400324a14a20a5035573c6e"
      , ByteString
"a8014d55cf1baa0081533357346666026466460020024660389448ccd5cd19b8748000dd69aab9e00123300300"
      , ByteString
"300124a06eac00488cccc0548cdc3a40006eb400488cdc39bad002375a0026eac008dd58008038018a999ab9a5"
      , ByteString
"32333573466e1d200035573a6ea801c54ccd5cd19b8748000d55ce9baa00314a2260029309800a4c464a64666a"
      , ByteString
"e68cdc3a40046aae740084c94ccd5cd19b8748008d55ce800899b8f375c6ae84d55cf0019bae357426aae78004"
      , ByteString
"4c00926375400a260029312999ab9a3370e90021aab9d0021325333573466e1d200435573a002266ebcd5d09aa"
      , ByteString
"b9e003357426aae780045281baa00514a06ea801c640165200523371e0040034a0c800c928528829405280a502"
      , ByteString
"329001800988ca4006002614a06aae78dd50031aab9e3754004300100209980200200080080099800911111111"
      , ByteString
"111111100813111919191919191919191919191919191919999999999999998091bac357420206eb0d5d08079b"
      , ByteString
"ac3574201c6eb4d5d08069bab357420186eb0d5d08059bab357420146ae84024dd61aba100837566ae8401cdd5"
      , ByteString
"9aba1006375c6ae84014dd59aba100437586ae8400cc004d5d080118009aba135744004602ceb4d5d10009aba2"
      , ByteString
"001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009a"
      , ByteString
"ba200135573c6ea8d5d09aab9e37540084464446600600400264600200244466660184666601a4944888cc8c00"
      , ByteString
"40048cc045289199ab9a300b35573c002466006006002494001400a000444666601e466460020024660229448c"
      , ByteString
"cd5cd18059aab9e00123300300300124a000c4446464a666ae68cdd78011aab9d005153335734660186aae7802"
      , ByteString
"0d55cf00289998058058038020a50153335734601a6aae780204ccc02c02c01c0244cc0054ccd5cd18069aab9e"
      , ByteString
"00514bd6f7b630099aba00054bd6f7b630002191800800911199980b125022232533357346026002266600e00e"
      , ByteString
"00c0062a666ae68cdd79aab9d004008153335734660246aae780380044ccc044044034cd405401800c52809991"
      , ByteString
"980400400099aba000400600335573c00600300035573a00c0090000028000a4c2601492010350543500332300"
      , ByteString
"100122122333300920022223353300700712001002335740006008005000120012223232323333005357420066"
      , ByteString
"eacd5d08011aba10013300775c6ae84d5d10009aba2001357440026aae78dd50019119191992999ab9a3371000"
      , ByteString
"4900009805a481035054360013300100280194004c018d5d0800b003280160001918008009114800cc03524103"
      , ByteString
"50543700912999ab9a3370e9000002080109991980300300099b81004480080046aae78008d55ce8009baa0012"
      , ByteString
"375c6ae84d55cf1baa0012375a6ae84d5d11aab9e3754002444a666aae7c004400c4cc008d5d08009aba200122"
      , ByteString
"32532333573466e1d200035573a004264a666ae68cdc3a40006aae740044cdc79bae357426aae7800cdd71aba1"
      , ByteString
"35573c00226004931baa0031300149894ccd5cd19b8748008d55ce8010992999ab9a3370e90011aab9d0011337"
      , ByteString
"1e6eb8d5d09aab9e003375c6ae84d55cf0008a5037540062940dd5001111192999ab9a3370e90011aab9d00113"
      , ByteString
"232333005375a6ae84008dd69aba1001375a6ae84d5d10009aba200135573c00226004931baa00323263357380"
      , ByteString
"030001"
      ]